0

我有一个很长的文本,我需要在 N 个字符之后剪切文本,以便最后得到一个文本,呈现在多行上,没有任何单词被剪切;

所以,如果有一个长度为 1000 个字符的文本,它已保存在 1 行,我需要从 100 个字符剪切到 100 个字符,最后,我将得到一个分布在 10 行的文本。

我尝试了一些东西,但我卡住了;

foreach 不起作用,没有看到 aa 数组的文本;另外,我没有确保在我的测试中保持单词完整;

有没有人试过这个?或者有解决方案的链接吗?

public static function cut_line_after_n_chars($str, $n = 70) {
    $result = '';
    $pos = 0;
    foreach ($str as $c) {
        $pos++;
        if ($pos == $n) {
            $result .= $c + '<br/>';
            $pos = 0;
        }
        else
            $result .= $c;
    }
    return $result;
}
4

2 回答 2

4

听起来你需要wordwrap.

http://php.net/manual/en/function.wordwrap.php

这使您可以将字符串分成一组片段,而不会切断单词。然后,您可以根据需要格式化这些片段。

编辑

如果您仍然需要每行包含 100 个字符,则可以使用str_pad在每行上添加额外的空格。

于 2013-02-27T16:11:15.173 回答
0

使用 explode() 函数从字符串中获取单词数组。

$words = explode( ' ', $str );

$length = 0;
foreach( $words as $word ) {
  // Your loop code goes here.
}
于 2013-02-27T16:13:43.097 回答