Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何按特定的字数将句子分隔为数组项_Php_String Split - Fatal编程技术网

Php 如何按特定的字数将句子分隔为数组项

Php 如何按特定的字数将句子分隔为数组项,php,string-split,Php,String Split,我有一个句子(有时长,有时不长),必须分解成一个字符串。问题是,它必须按长度分开(永远不要切掉单词) 例如: $sentence = 'I slipped it into that Stevia crap that you're always putting in your tea.'; 应为(每行顶部使用15个字母): 如你所见,某些线如 [1 ] 确实应该在 >甜菊CR 中删减,但是由于剪切是在最后一个单词的中间,所以它仍然被允许包含在这个块中。 我目前的做法是将$SEQUE切成相同大小的

我有一个句子(有时长,有时不长),必须分解成一个字符串。问题是,它必须按长度分开(永远不要切掉单词)

例如:

$sentence = 'I slipped it into that Stevia crap that you're always putting in your tea.';
应为(每行顶部使用15个字母):

如你所见,某些线如<强> [1 ] 确实应该在<强> >甜菊CR 中删减,但是由于剪切是在最后一个单词的中间,所以它仍然被允许包含在这个块中。


我目前的做法是将$SEQUE切成相同大小的块,但这确实减少了一些单词。任何想法都会有帮助。谢谢

您可以使用wordwrap函数

产出将是:

array(1) { 
    [0]=> array(3) { 
        [0]=> string(17) "This is some text" 
        [1]=> string(17) "which we will use" 
        [2]=> string(11) "for testing" 
    } 
} 

它总是增加吗?我的意思是,如果你得到了“我把它滑进去了”,你还会想要整个“我把它滑进去了”还是“我把它滑进去了”?如果是第一种方法,就容易了。如果第15个字符上的单词很长怎么办?@poomrokct三十年前我会说“我把它滑进去了”,因为在那个特定的场景中,“我把它滑进去了”可能太长。“我把它滑进去了”而不是“我把它滑进去了”我不知道你的意思@Jack the code$text=“我把它塞进了你总是放在茶里的甜叶菊的垃圾里。”;$newtext[]=explode(“:”,wordwrap($text,17,“:”));返回他在帖子中描述的数组。如果OP想要软限制在15,你是如何定义17的?我明白你的意思了——但如果一行有“top”15个字符,结果就是“我塞进了它”而不是“我把它滑进去了”,因为后面是17个字符,显然是>15个字符。“前15名”可以通过explode(“:”,wordwrap($text,15,“:”)来完成;但由于OP在他的示例数组中描述了“我将其插入”,这是17个字符长,而且>然后“顶部”15个字符爆炸(“:”,wordwrap($text,17,“:”));返回期望的结果,我认为我的答案是正确的,我认为你的想法不太正确;它应该在15处剪辑,但如果这落在一个单词上,它应该直接在该单词后面剪辑。
 $text = "This is some text which we will use for testing";

 $newtext[] = explode(":", wordwrap( $text, 18, ":" ));

 var_dump($newtext);
array(1) { 
    [0]=> array(3) { 
        [0]=> string(17) "This is some text" 
        [1]=> string(17) "which we will use" 
        [2]=> string(11) "for testing" 
    } 
}