我想通过(例如)50个符号(分钟)来爆炸一个字符串,但不分成2个部分的单词。
这可能吗?
使用str_split()
会导致最后一个单词被拆分,这是我不想要的。
示例:将字符串拆分为5个符号;
$input = 'This is example, example can be anything.';
$output[0] = 'This';
$output[1] = 'is example,';
$output[2] = 'example';
$output[3] = 'can';
$output[4] = 'be anything';
答案 0 :(得分:3)
我认为没有一个内置函数会为你做,但你可以做这样的事情:
$string = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque nec elit dui, nec fermentum velit. Nullam congue ipsum ac quam auctor nec massa nunc.";
$output = array();
while (strlen($string) > 50) {
$index = strpos($string, ' ', 50);
$output[] = trim(substr($string, 0, $index));
$string = substr($string, $index);
}
$output[] = trim($string);
var_dump($output);
// array(3) {
// [0]=>
// string(50) "Lorem ipsum dolor sit amet, consectetur adipiscing"
// [1]=>
// string(55) "elit. Quisque nec elit dui, nec fermentum velit. Nullam"
// [2]=>
// string(43) "congue ipsum ac quam auctor nec massa nunc."
// }
答案 1 :(得分:0)
只需查看字符串,然后在一个数字(数字= 5)的字符后检查下一个字符是否为空格并分割。如果没有空间,不要拆分并转到下一个空格: - )
答案 2 :(得分:0)
我想我也了解你,然后你可以使用这个功能:
<?php
function str_split_len($str, $len)
{
if( $len > strlen($str) )
{
return false;
}
$strlen = strlen($str);
$result = array();
$words = ($strlen / $len);
for( $x = 1; $x <= $len; $x++ )
{
$result[] = substr($str, 0, $words);
$str = substr($str, $words, $strlen);
}
return $result;
}
/* Example */
$res = str_split_len("Split me !haha!", 3);
print_r($res);
?>