我想将我的字符串截断/缩短为最接近一定数量字符的句子。
我有一个工作函数,但我的函数截断为最接近某个字符数的单词。
function shortenString($string, $your_desired_width) {
$parts = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE);
$parts_count = count($parts);
$length = 0;
$last_part = 0;
for (; $last_part < $parts_count; ++$last_part) {
$length += strlen($parts[$last_part]);
if ($length > $your_desired_width) { break; }
}
return implode(array_slice($parts, 0, $last_part));
}
例如:
Lorem ipsum dolor sit amet, consectetur adipiscing elit。整数malesuada eleifend orci,eget dignissim ligula porttitor cursus。Praesent in blandit enim。Maecenas vitae eleifend est. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus。Maecenas pulvinar gravida tempor。
应缩短为:
Lorem ipsum dolor sit amet, consectetur adipiscing elit。整数malesuada eleifend orci,eget dignissim ligula porttitor cursus。
而不是像这样打破句子:
Lorem ipsum dolor sit amet, consectetur adipiscing elit。整数malesuada eleifend orci,eget dignissim ligula porttitor cursus。 存在于
帮助表示赞赏。