递归循环遍历 DOM 树并删除不需要的标签?

2023-11-29

$tags = array(
    "applet" => 1,  
    "script" => 1
);

$html = file_get_contents("test.html");
$dom = new DOMdocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$body = $xpath->query("//body")->item(0);

我要循环遍历网页的“正文”并删除 $tags 数组中列出的所有不需要的标签,但我找不到方法。那么我该怎么做呢?


你有没有考虑过HTML 净化器?从你自己的 html 清理开始只是重新发明轮子,而且不容易完成。

此外,黑名单方法也很糟糕,请参阅SO/为什么使用白名单进行 html 清理

您可能还有兴趣阅读如何配置允许的标签和属性 or 测试 HTML Purifier 演示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

递归循环遍历 DOM 树并删除不需要的标签? 的相关文章

  • 如何使自定义 Web 组件可聚焦?

    我正在写一个自定义网络组件 https github com denilsonsa html5 knob这意味着是互动的 我如何告诉浏览器这个自定义组件应该获得焦点 我希望我的自定义元素 可以聚焦 通过选项卡导航 集中注意力时可以接收按键信
  • createHTMLNotification() 替换

    我创建了一个 Chrome 扩展程序 其中使用createHTMLNotification 在所有内容之上显示一个窗口 然而 从 Chrome 28 开始 谷歌决定放弃createHTMLNotification 完全 为什么 谷歌 为什么
  • 使用 python 在一个 html 页面中显示分割数据框的 HTML 代码

    我是 html css 新手 所以对以 html 格式显示的数据有疑问 我有一个很长的列表 我想将其拆分并以 html 格式显示为两个单独的列 例如 而不是 Col1 Col2 1 a 2 a 3 a 4 a 5 b 6 b 7 b 8 b
  • 在 HTML5 Javascript 中将 BlobBuilder 转换为字符串

    function blobToString blob var reader new FileReader var d reader onloadend function d callback reader result console lo
  • 如何在 yii2 中使用两个不同的模型登录或切换身份类别?

    我想允许用户从两个不同的模型登录 配置文件 user gt identityClass gt app models User one more class here enableAutoLogin gt false authTimeout
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • 如何在 OS X 上使用 OpenSSL 1.0.1 编译 PHP 5.5.19

    我已经安装了 OpenSSL 1 0 1j usr local ssl现在我尝试使用此版本的 OpenSSL 编译 PHP 5 5 19 这是我的配置过程 export CFLAGS arch x86 64 export CXXFLAGS
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • Sonata DateTimePickerType 类默认日期显示错误的日期时间格式

    我陷入困境 我不知道如何使用 sonata DateTimePickerType 类正确设置默认日期和时间 我尝试了不同的方法 但到目前为止 没有一种方法没有帮助 在下面的截图中 help 键显示正确的日期和时间 但是当我使用 dp 默认日
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

    我正在实现 Zend Regex 路由 并且必须对 url 执行多次检查 例如 如果这是我的网址 http localhost application public index php module controller action 这是
  • 从数据库填充复选框

    我有两个表 第一个由与名称关联的 id 组成 1 汽车 2 火车 3 普通 ETC 第二个表由两个字段 user id 和第一个表中的 id 组成 例如 1 1 2 1 3 当用户转到该页面时 我试图重新填充选定的复选框 首先 您查询数据库
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 如何在 Zend Framework 3 中注册自定义表单视图助手

    我正在将继承的 Zend Framework 2 应用程序迁移到 Zend Framework 3 并且在注册自定义表单视图助手时遇到了一些困难 这些助手在应用程序使用版本 2 时起作用 主要用于添加标签属性以实现可访问性 例如 这是一个自
  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • 禁用允许文本选择的

    残疾人可以吗

随机推荐

  • 如何在android中为每个联系人/人发送短信确认?

    我想向多人发送短信并验证短信是否已发送 我检查了多个链接 此处提到 并得到了使用的想法PendingIntent and broadCast Receiver确认 查明短信是否已发送的实用方法 在android中以编程方式发送短信 http
  • Codeigniter 删除...在哪里...以及

    我需要一点帮助 我如何使用 codeigniter 发送此查询 Delete FROM friendconnect WHERE who 5 and whos 1 OR whos 5 and who 1 我只发现 this gt db gt
  • .NET Core 依赖注入实例何时被释放?

    ASP NET Core 使用扩展方法IServiceCollection设置依赖注入 然后当需要类型时 它使用适当的方法创建一个新实例 AddTransient
  • 如何避免我的 makefile 重新链接

    我的 Makefile 正在重新链接 但我找不到原因 我不确定为什么 malloc 假设必须执行 NAME SRC c o 宏是否更改了 o 文件的时间戳或类似内容 CC gcc NAME app CFLAGS Wall Werror We
  • 无法在 Android 11 上以编程方式拍照 - Intent 返回取消状态

    开始一个意图 Intent intent new Intent MediaStore ACTION IMAGE CAPTURE CurrentFile new File getTempFileString CurrentUri FilePr
  • 捕获完整的异常消息

    考虑 Invoke WebRequest sumoApiURL Headers Content Type application json Credential cred WebSession webRequestSession Metho
  • 使用按钮而不是 ui 导航控制器在视图之间切换

    我看过这个帖子iPhone如何通过按钮切换视图 但这并没有回答如何使用按钮在视图之间来回切换 提出问题的人给出的答案是他们可以使用 uinavigationcontroller 在视图之间切换 我将以下代码放入 ibaction 中 当在主
  • Java Jersey 2:独立的?

    是否可以在 Java 应用程序中独立使用 Jersey REST 服务 我找到的每个示例都位于 Web 容器 web xml 的上下文中 感谢帮助 只需按照泽西岛文档入门 它使用 Grizzly 创建一个独立的服务器 使用 Maven 您可
  • 如何获取导入包的路径

    我在尝试获取导入包的路径时遇到困难 当我打印结果时os Getwd 在导入的包内 它显示与上相同的路径main包裹 这就是我所做的 项目结构 库 lib go package lib import os import fmt func in
  • 如何使用 scriptdom API 提取跨数据库引用

    微软已经曝光了scriptdom API解析并生成TSQL 我对它很陌生 并且仍在玩它 我想知道如何从这样的查询中获取跨数据库引用 UPDATE t3 SET description abc FROM database1 dbo table
  • 保存时如何检查字段是否发生变化?

    在我的模型中我有 class Alias MyBaseModel remote image models URLField max length 500 null True help text A URL that is downloade
  • 将条形子弹图转换为柱形图

    这是 highchart 子弹图的示例http jsfiddle net jlbriggs LdHYt 1 我们如何将其转换为柱形子弹图 Highcharts Renderer prototype symbols line function
  • 文本作为 CSS 的背景图像

    我正在尝试使用 Jquery 和 CSS 将字母表中的字母 随机 显示为 div 的背景图像 但是 我希望每个元素的字母是随机的 但我只能同时对所有图像进行随机化 HTML div class randbg div div class ra
  • std::chrono::duration::count 函数的实际结果类型是什么

    实际结果类型是什么std chrono duration count函数类似于以下情况 std chrono duration cast
  • 全局命名空间中的保留名称

    从我的回答中得出C 中的动态对象数组并作为后续行动在 C 标识符中使用下划线的规则是什么 显然 名字开头 后面跟着的大写字母在全局命名空间中保留 17 4 3 2 1 全局名称 lib global names 某些名称和函数签名集始终保留
  • 如何制作通用链表

    我正在尝试在中创建一个通用链表C编程语言和我 成功了 但我有一个小问题 链接列表 h struct Element void data struct Element nEl typedef struct Element Element st
  • C#7:Out 变量中的下划线 (_) 和星号 (*)

    我正在阅读 C 7 中新的输出变量功能here 我有两个问题 It says 我们也允许 丢弃 作为输出参数 形式为 让你忽略你不关心的参数 p GetCoordinates out var x out I only care about
  • 在C#中,接口可以实例化吗?

    我正在阅读中的代码here 我发现private ITreeModel model 在 TreeList cs 中 namespace Aga Controls Tree public class TreeList ListView reg
  • 通过嵌套字典键对 pandas 数据框进行分组

    我有一个 pandas 数据框 其中一列是字典类型 这是一个示例数据框 import pandas as pd df pd DataFrame a 1 2 3 b 4 5 6 version major 7 minor 1 major 8
  • 递归循环遍历 DOM 树并删除不需要的标签?

    tags array applet gt 1 script gt 1 html file get contents test html dom new DOMdocument dom gt loadHTML html xpath new D