不想使用strip_tags()删除CDATA

时间:2013-08-02 11:23:57

标签: php html

我的一些客户希望将谷歌重新营销代码添加到他们的网站,并且有一个专门小组来实现这一目标。

我正在使用strip_tags从代码中删除不必要的代码(安全原因),但该功能也删除了CDATA

如何排除它?

再营销代码示例:

<script type="text/javascript">
   /* <![CDATA[ */
var google_conversion_id = 123456789;
var google_conversion_label = "AAAAAAAAAAAAAAAAAAA";
var google_custom_params = window.google_tag_params;

var google_remarketing_only = true;

/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/123456789/?label=AAAAAAAAAAAAAAAAAAA&guid=ON&script=0"/>
</div>
</noscript>

PHP代码:

$userContent = addslashes(strip_tags($data["analytics_code"],'<script><noscript><img><div>'));

输出就是这样:

<script type="text/javascript">
   /*  */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/123456789/?label=AAAAAAAAAAAAAAAAAAA&guid=ON&script=0"/>
</div>
</noscript>

由于

1 个答案:

答案 0 :(得分:1)

不幸的是strip_tags()的功能相当简单。此外,作为一般规则,正则表达式无法解析HTML,因为HTML,XML等不适合常规语言类。换句话说,您只需使用HTML / XML解析器来提取所需的信息。