每当子字符串长于x个字符时PHP插入<br/>

时间:2011-03-21 13:21:10

标签: php string substring

我正在尝试创建一些PHP代码,用于检查字符串中各个子字符串的长度并插入&#34; <br />&#34;每当子字符串长于x个字符时。

字符串始终为以下形式:
aaa bbbbwer sdfr <br /> ert tyuo sdh <br /> ryt kkkkkkkkkkkk sdfg

所以,假设x = 5,那么我希望将该字符串转换为:
aaa bbbbw <br /> er sdfr <br /> ert tyuo sdh <br /> ryt kkkkk <br /> kkkkk <br /> kk sdfg

我该怎么做?请帮助!

非常感谢。

3 个答案:

答案 0 :(得分:4)

我认为你可以尝试wordwrap

<?php
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 20, "<br />\n");

echo $newtext;
?>

结果

The quick brown fox<br />
jumped over the lazy<br />
dog.

答案 1 :(得分:2)

您可以使用以下代码对包含超过x个字符的单词进行切片。

首先使用函数explode()将字符串拆分为行。它会在<br />标签上爆炸。然后它将遍历线并将线分成每行的单词。然后对于每个单词,它将在每5个字符后添加<br />。并将已编辑的行添加到变量$new_string。最后,它回显变量$new_string以显示已编辑的字符串。

  • 要更改最大字长,只需更改变量$max_length
  • 要更改输入字符串,只需更改变量$string

<强>代码

$string      = 'aaa bbbbwer sdfr<br />ert tyuo sdh<br />ryt kkkkkkkkkkkk sdfg';
$max_length  = 5;

$lines       = explode('<br />', $string);
$new_string  = '';

foreach($lines as $line)
{
    $words = explode(' ', $line);

    foreach($words as $word)
    {
        $new_string .= substr(chunk_split($word, $max_length, '<br />'), 0, -6) . ' ';
    }

    $new_string = substr($new_string, 0, -1) . '<br />';
}

echo $new_string;


输出

aaa bbbbw<br />er sdfr<br />ert tyuo sdh<br />ryt kkkkk<br />kkkkk<br />kk sdfg<br />

答案 2 :(得分:0)

wordwrap function并没有让你想要什么?