我在处理我的小web应用程序的重构。一整晚。今天,当我开始测试时,我发现的第一个bug是系统PHP函数nl2br()的问题。
在我的本地主机上,我有PHPVersionXHTML5.2.9,正如我在PHP站点上看到的,来自4.0.5版本的 nl2br()是符合XHTML的。
然后,我完全不明白为什么我的nl2br()在没有第二个参数设置为false而不是<br />的情况下返回<br>。
下面是我发现这个bug的方法:
public function eliminateTags($msg) {
$setBrakes = nl2br($msg);
$decodeHTML = htmlspecialchars_decode($setBrakes);
# Check PHP version
if((int)version_compare(PHP_VERSION, '4.0.5') == 1) {
$withoutTags = strip_tags($decodeHTML, '<br />');
} else {
$withoutTags = strip_tags($decodeHTML, '<br>');
}
return $withoutTags;
}发布于 2010-07-04 08:57:22
我不知道你想用这个函数做什么。首先,在每一行中插入HTML断点,然后除去除断点之外的所有标记。
首先剥去标签,然后插入HTML换行,难道不是更明智吗?
public function eliminateTags($msg) {
$decodeHTML = htmlspecialchars_decode($msg);
$withoutTags = strip_tags($decodeHTML);
$setBreaks = nl2br($withoutTags);
return $setBreaks;
}编辑:
显然,您没有正确地使用strip_tags()。您需要问PHP哪个标记要排除,哪个是<br>,而不是<br />。要求PHP排除<br />就像要求排除不起作用的<p></p>。
这反过来意味着您不能检查PHP strip_tags()将像在所有版本中一样工作。
https://stackoverflow.com/questions/3174185
复制相似问题