繁体   English   中英

PHP的ent_quotes例外 <br> 和 <ar>

[英]PHP ent_quotes exception for <br> and <ar>

我试图使用PHP将HTML隐蔽到实体,但是我需要除<br>和<a>标记之外。

这是我的代码的示例

 <?php 
  $string[0] = "<a href='http://hidd3n.tk'>Needs to stay</a> Filler text in between 
 <br><br> <script src='http://malicious.com/'></script> NEEDS to go";
  $string[1] = htmlentities($string[0], ENT_QUOTES, "UTF-8");
 ?>

我建议您使用BBCode ,这样会更安全。

编辑:

好吧,我已经想出了办法。

使用此功能比上一个功能更安全:

function convert_myhtml_entities($string){
    $string = htmlentities($string, ENT_NOQUOTES, "UTF-8");
    $string = preg_replace('/&lt;\s*br\s*(\/|)\s*&gt;/U','<br$1>',$string);
    $string = preg_replace('/&lt;\s*a(.*)\s*&gt;/U','<a$1>',$string);
    $string = preg_replace('/&lt;\s*\/\s*a\s*&gt;/U','</a>',$string);
    return $string;
}

现在已使用上面的字符串进行了测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM