使用PHP删除HTML属性
使用PHP我想删除所有HTML属性,除了 “img”标记中的“src”属性 及 “a”标记中的href“属性 我的输入文件是从.doc和.docx转换而来的.html文件 我的输出文件应该是HTML文件,属性已删除 请帮帮我 编辑:: 在尝试下面的alexander脚本后,如果我在代码编辑器中打开strip.html,我看不到任何更改使用PHP删除HTML属性,php,Php,使用PHP我想删除所有HTML属性,除了 “img”标记中的“src”属性 及 “a”标记中的href“属性 我的输入文件是从.doc和.docx转换而来的.html文件 我的输出文件应该是HTML文件,属性已删除 请帮帮我 编辑:: 在尝试下面的alexander脚本后,如果我在代码编辑器中打开strip.html,我看不到任何更改 <?php $path = '/var/www/strip.html'; $html = file_get_contents($path); $dom =
<?php
$path = '/var/www/strip.html';
$html = file_get_contents($path);
$dom = new DOMDocument();
$dom->strictErrorChecking = false;
$dom->formatOutput = true;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
if (false === ($elements = $xpath->query("//img"))) die('Error');
foreach ($elements as $element) {
for ($i = $element->attributes->length; --$i >= 0;) {
$name = $element->attributes->item($i)->name;
if ('src' !== $name) {
$element->removeAttribute($name);
}
}
}
if (false === ($elements = $xpath->query("//a"))) die('Error');
foreach ($elements as $element) {
for ($i = $element->attributes->length; --$i >= 0;) {
$name = $element->attributes->item($i)->name;
if ('href' !== $name) {
$element->removeAttribute($name);
}
}
}
$dom->saveHTMLFile($path);
?>
使用类解析HTML(“a”和“img”标记处理):
另外,请阅读并查看
更新(除“a”和“img”属性处理外的所有标签):
@stefan如何让它像我输入html一样工作,然后单击一个按钮,我应该要求保存处理后的html文件???该链接应该可以帮助您开始,我不会为您设计应用程序,但在您获得html后,无论如何,将其通过正则表达式传递。这是输出与输入相同的文件。。。我所做的:将您提供的代码保存为php,将$path值更改为输入文件路径,还为输出路径添加了一个新字符串$path,并在最后一行将$path更改为$path。。在浏览器中加载了php文件。我收到的输出与$PATHdir中的输入相同。。属性不是removed@PHPGeany当然,你做错了什么,因为这段代码没问题。证明:@PHPGeany“在浏览器中加载了php文件”?您是否在本地计算机上安装了http服务器?您是否尝试通过控制台运行此代码,如“phpcodesource.php”?浏览器没有集成php解释器,这就是为什么在浏览器中加载php代码没有任何作用。找到我在原始问题中所做的编辑我使用lamp堆栈我尝试使用本地浏览器作为localhost/path.phpDo错误日志中有错误/警告吗?尝试更改
$dom->saveHTMLFile($path)
tovar_dump($dom->saveHTML())
查看属性删除是否存在问题。
$path = '/path/to/file.html';
$html = file_get_contents($path);
$dom = new DOMDocument();
//$dom->strictErrorChecking = false;
$dom->formatOutput = true;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
if (false === ($elements = $xpath->query("//img"))) die('Error');
foreach ($elements as $element) {
for ($i = $element->attributes->length; --$i >= 0;) {
$name = $element->attributes->item($i)->name;
if ('src' !== $name) {
$element->removeAttribute($name);
}
}
}
if (false === ($elements = $xpath->query("//a"))) die('Error');
foreach ($elements as $element) {
for ($i = $element->attributes->length; --$i >= 0;) {
$name = $element->attributes->item($i)->name;
if ('href' !== $name) {
$element->removeAttribute($name);
}
}
}
$dom->saveHTMLFile($path);
$path = '/path/to/file.html';
$html = file_get_contents($path);
$dom = new DOMDocument();
//$dom->strictErrorChecking = false;
$dom->formatOutput = true;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
if (false === ($elements = $xpath->query("//*"))) die('Error');
foreach ($elements as $element) {
for ($i = $element->attributes->length; --$i >= 0;) {
$name = $element->attributes->item($i)->name;
if (('img' === $element->nodeName && 'src' === $name)
|| ('a' === $element->nodeName && 'href' === $name)
) {
continue;
}
$element->removeAttribute($name);
}
}
$dom->saveHTMLFile($path);