don';我不想使用strip_tags()删除CDATA


don't want to remove CDATA using strip_tags()

我的一些客户想在他们的网站上添加谷歌再营销代码,有一个面板可以做到这一点。

我使用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>

感谢

不幸的是,strip_tags()的功能相当简单。此外,作为一般规则,正则表达式不能解析HTML,因为HTML、XML等不属于正则语言类。换句话说,您可以使用HTML/XML解析器来获取所需的信息。