php strip_tags:允许<br />?

lau*_*kok 9 php tags strip

如何允许<br />在strip_tags()或我可以绕过它的任何方式?

<?php
$text = '<p>Test <br />paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p>, <a>, <br />
echo strip_tags($text, '<p><a><br />');
echo "\n";

// Allow <br /> only
echo strip_tags($text, '<br />');
?>
Run Code Online (Sandbox Code Playgroud)

结果:

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
Test paragraph. Other text
Run Code Online (Sandbox Code Playgroud)

谢谢,刘

Ran*_*Dev 17

不要使用自动关闭标签名称? echo strip_tags($text, '<br>');

strip_tags()函数的allowable_tags参数可允许的标签形式<tagname>的代码没有工作的原因是因为你用<br />代替<br>.

  • 我强硬有效的标签总是自动关闭! (2认同)

bob*_*nce 6

strip_tags并不是一种安全措施,使用它allowable_tags绝对是不安全的,因为它会通过事件处理程序和其他有害属性.

如果您想允许用户输入一些白名单元素和属性,则需要使用带有正确HTML解析器的HTML清理库.例如,参见HTML净化器.

用户评论通常最好不要让用户完全控制HTML标记,而是接受原始文本,在输出上对其进行HTML转义,并进行替换以从文本生成标记(例如:\n- > <br>,\n\n- > </p><p>,链接检测).