PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP在函数nl2br中的奇怪行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我当时正在处理小型Web应用程序的重构.一整夜.今天,当我开始测试时,发现的第一个错误是系统PHP函数nl2br()存在问题.

在我的本地主机上,我具有@L_696_4@版本5.2.9,并且从版本4.0.5的PHP site中可以看到,nl2br()是XHTML兼容的.

那么我绝对不明白为什么我的nl2br()返回< br>而不将第二个参数设置为false而不是< br />.

这是我发现此错误方法

public function eliminateTags($msg) {
    $setBrakes = nl2br($msg);
    $decodeHTML = htmlspecialchars_decode($setBrakes);

    # check @L_696_4@ version
    if((int)version_compare(@L_696_4@_VERSION, '4.0.5') == 1) {
        $withoutTags = Strip_tags($decodeHTML, '<br />');
    } else {
        $withoutTags = Strip_tags($decodeHTML, '<br>');
    }

    return $withoutTags;
}

解决方法:

我不确定我是否理解您要使用此功能完成的工作.首先,在每一行中插入HTML分隔符,然后剥离除分隔符之外的所有标签.

先剥离标签然后再插入HTML换行符会更明智吗?

public function eliminateTags($msg) {
    $decodeHTML = htmlspecialchars_decode($msg);
    $withoutTags = Strip_tags($decodeHTML);
    $setBreaks = nl2br($withoutTags);

    return $setBreaks;
}

编辑:

显然您没有正确使用Strip_tags().您需要询问@L_696_4@要排除哪个标签,这是< br>而不是< br />.要求@L_696_4@排除< br />就像要求排除< p>< / p>这是行不通的.

反过来,这意味着您不必检查@L_696_4@版本-Strip_tags()可以在所有版本中正常工作.

大佬总结

以上是大佬教程为你收集整理的PHP在函数nl2br中的奇怪行为全部内容,希望文章能够帮你解决PHP在函数nl2br中的奇怪行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: