php - 不想使用 strip_tags() 删除 CDATA

标签 php html

我的一些客户希望将 Google 再营销代码添加到他们的网站,并且有一个面板可以实现此目的。

我使用 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 解析器来找出您需要的信息。

关于php - 不想使用 strip_tags() 删除 CDATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18015700/

相关文章:

php - Laravel 查询如何检查列是否以 0 开头

php - 从继承接口(interface)的类调用静态方法

javascript - ngFor 中的下拉列表仅显示第一个列表项

css - div/span 和 sprite

html - 带有扩展子菜单的垂直导航菜单

php - 如何在 Laravel 5.5 中进行多次插入?

javascript - Codeigniter:使用按钮单击查看数据库中的更多数据

php - SQLSTATE[HY000] [2003] 无法连接到 'XXX.XXX.XXX.XXX' (60) 上的 MySQL 服务器

html - 是否可以在没有父容器或将其设置为背景的情况下在 css 中裁剪图像 <img>?

html - 带有过滤器的 SVG 投影被截断