php - 使用 PHP 删除 HTML(ob_start + dom 解析器)

标签 php html ob-start domparser

我需要学习如何使用 PHP 删除 html 标签。

这就是我的想法(我认为 DOM 短语是我所需要的,但我无法弄清楚它是如何工作的。一个工作示例对我来说会有很大的帮助。我无法安装任何外部库,而且我运行 PHP 5):

function the_remove_function($remove){

//  dom parser code here?

return $remove;}

// return all content into a string
ob_start('the_remove_function');

示例代码:

<body>
<div class="a"></div>
<div id="b"><p class="c">Here are some text and HTML</p></div>
<div id="d"></div>
</body>

问题:

1) 如何返回:

<body>
<p class="c">Here are some text and HTML</p>
</body>

2) 如何返回:

<body>
<div class="a"></div>
<div id="b"></div>
<div id="d"></div>
</body>

3) 如何返回:

<body>
<div class="a"></div>
<p class="c">Here are some text and HTML</p>
<div id="d"></div>
</body>

下一个示例代码:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel='stylesheet' id='test-css'  href='http://www.domain.com/css/test.css?ver=2011' type='text/css' media='all' />
<script type='text/javascript' src='http://www.domain.com/js/test.js?ver=2010123'></script>
</head>

4) 如何返回:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel='stylesheet' id='test-css'  href='http://www.domain.com/css/test.css?ver=2011' type='text/css' media='all' />
</head>

5) 如何返回:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type='text/javascript' src='http://www.domain.com/js/test.js?ver=2010123'></script>
</head>

感谢您的阅读:)

最佳答案

尝试HTML Purifier图书馆。它完全满足您的需要,并且有关于如何创建过滤器的大量文档。如果您出于安全原因想要进行过滤,那么请务必使用它 - 它有一个解析器,可以应对可以想象到的最疯狂的 XSS 方案。

关于php - 使用 PHP 删除 HTML(ob_start + dom 解析器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5610839/

相关文章:

javascript - 使用 JavaScript 更改所选文本的字体

javascript - 保留 Canvas 的一部分

php - ob_start() 正在部分捕获数据

php - 将链接从 html 链接到本地​​主机

php - 如何在我的本地计算机(Ubuntu)上测试 php 代码?

html - 如何向 React Link 添加图标?

PHP ob_flush() 导致错误

php - 如何让我的联系表向我发送电子邮件

php - 显示来自 Mysql 的数组信息