PHP wordwrap成2个变量

时间:2017-12-29 06:40:00

标签: php

使用wordwrap以便我可以得到完整的单词,如何将最多255个字符的字符串拆分为两个45个字符的行变量而忽略其余的?

我会用:

$line1 = substr($str, 0, 45);
$line2 = substr($str, 45, 45);

但我需要休息才能成为一个词,而不是第45个角色。

3 个答案:

答案 0 :(得分:1)

您可以使用wordwrap

$lines = explode("\n", wordwrap($str, 45, "\n"));

答案 1 :(得分:0)

php wardwrap是您应该尝试的功能。

wordwrap

$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个字符,如果它在那里找到分隔符。