使用wordwrap
以便我可以得到完整的单词,如何将最多255个字符的字符串拆分为两个45个字符的行变量而忽略其余的?
我会用:
$line1 = substr($str, 0, 45);
$line2 = substr($str, 45, 45);
但我需要休息才能成为一个词,而不是第45个角色。
答案 0 :(得分:1)
您可以使用wordwrap,
$lines = explode("\n", wordwrap($str, 45, "\n"));
答案 1 :(得分:0)
php wardwrap
是您应该尝试的功能。
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 45, "<br />\n");
echo $newtext;
或者同时使用explode和wordwrap,
$x = 15;
$longString = 'I like apple. You like oranges. We like fruit. I like meat, also.';
$lines = explode("\n", wordwrap($longString, $x));
var_dump($lines);
array(6) {
[0]=>
string(13) "I like apple."
[1]=>
string(8) "You like"
[2]=>
string(11) "oranges. We"
[3]=>
string(13) "like fruit. I"
[4]=>
string(10) "like meat,"
[5]=>
string(5) "also."
}
您现在可以使用数组中的前2个值。
答案 2 :(得分:0)
您可以使用strpos(string,find,start)
strpos($string, " ", 45)
找到第45个字符之后或之前的空格。或者使用正则表达式找到所有分隔符(空格,&#34;!&#34;,&#34;。&#34;等)字符,然后根据数学继续查询。
$subject = "abcdef sdfasdfa hdfghdfgh...";
$pattern = '/[\s\n\b!.]/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 45);
print_r($matches);
但考虑到它会削减,例如直到第51个字符,如果它在那里找到分隔符。