【问题标题】:PHP insert <br /> whenever substring is longer than x characters每当子字符串长于 x 个字符时 PHP 插入 <br />
【发布时间】:2011-07-19 16:29:02
【问题描述】:

我正在尝试创建一些 PHP 代码来检查字符串中各个子字符串的长度,并在子字符串长度超过 x 个字符时插入“&lt;br /&gt;”。

字符串始终采用以下形式:
aaa bbbbwer sdfr&lt;br /&gt;ert tyuo sdh&lt;br /&gt;ryt kkkkkkkkkkkk sdfg

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

我该怎么做?请帮忙!

非常感谢。

【问题讨论】:

  • 运气好了吗?我已经更新了我的答案。

标签: php string substring


【解决方案1】:

我觉得你可以试试自动换行

<?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.

【讨论】:

  • 这不会像 OP 要求的那样每 5 个字符拆分单词。
  • @Michiel Pater:是的,我只是提出了一种更简单的处理方法,我认为他可能设计了不知道此功能的字符串!你的回答很中肯,我只是给了一个建议
【解决方案2】:

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

它将首先使用函数explode() 将字符串分成几行。它在&lt;br /&gt; 标签上爆炸。然后它将遍历这些行并将该行拆分为每行的单词。然后对于每个单词,它会在每 5 个字符后添加&lt;br /&gt;。并将编辑的行添加到变量$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 />

【讨论】:

    【解决方案3】:

    wordwrap function 不满足你的需求?

    【讨论】:

    • 这不会像 OP 要求的那样每 5 个字符拆分单词。
    • 感谢您的快速回复!尽管 Michiel 的答案可能最好地解决了我在这里写的问题,但使用 wordwrap 也可以正常工作。干杯!
    • @RLJ 我已将您的帐户合并在一起,您现在可以接受正确的答案。我建议你注册;还有,please read this Faq entry about cookie-based accounts.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 2012-06-09
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多