wordwrap无法正常工作

时间:2011-10-04 19:33:52

标签: php

我正在尝试从我的mysql数据库中提取一个字符串并使用工作向其添加<br />标记。但它不起作用,我无法解决为什么

if(mysql_num_rows($res)){
    echo '<div id="contents">';
    while($row = mysql_fetch_array($res)){
    $UserName = $row['UserName'];
    $Message = $row['Message'];

    $MessageW = wordwrap($Message, 10, "<br />\n");

      echo '<div><strong>' .
            $UserName . ': </strong>' .
            $MessageW . '</div>';
    }
    echo '</div>';
  }

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:9)

邮件中的所有字词都不可能包含10个字符的长度。默认情况下,PHP不会剪切单词,因此传递true的第四个参数以强制在单词中间剪切。

此外,您的代码易受XSS攻击。要解决此问题,首先wordwrap,然后将结果转换为HTML,最后转换换行符:

$MessageW = wordwrap($Message, 10, "\n", true);
$MessageW = htmlentities($MessageW);
$MessageW = nl2br($MessageW);