1

可怕的标题,我知道。

我想要某种自动换行,但显然不能使用 wordwrap() 因为它弄乱了 UTF-8 .. 更不用说标记了。

我的问题是我想摆脱像“eeeeeeeeeeeeeeeeeeeeeeeeeeee”这样的东西......但当然会更长。一些开玩笑的人觉得把这些东西放在我的网站上很有趣。

所以当我有一个这样的字符串时,“你好,你好吗?我想用零宽度空格 (​) 字符分解“areeee”。

字符串并不总是相同的字母,而且字符串总是在较大的字符串中。所以 str_len、substr、wordwrap 都不完全符合描述。

谁能帮帮我?

4

2 回答 2

1

分 3 步执行此操作

  1. 对字符串和空格进行拆分
  2. 对字符串中的每个单词执行 str_len/trim
  3. 将字符串重新连接在一起

这样做的缺点是超过 10 个字符的单词也会被破坏。所以我建议在这里添加一些东西,看看它是否一遍又一遍地连续出现同一个字母。

例子

$string = "Hello how areeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee you doing?";
$strArr = explode(" ",$string);
foreach($strArr as $word) {
if(strlen($word) > 10) {
    $word = substr($word,0,10);
}

$wordArr[] = $word;
}

$newString = implode(" ",$wordArr);
print $newString;  // Prints "Hello how areeeeeeee you doing?"
于 2012-06-26T21:29:26.127 回答
1

说这不是PHP 解决方案,如果您的问题是脚本的视图,为什么不使用简单的 CSS3 规则,称为word-wrap

让你的容器是一个divwith id="example",你可以这样写:

#example
{
  word-wrap: break-word;
}
于 2012-06-26T21:33:25.617 回答