我正在尝试使用Tidy清理并从旧系统中传输一些内容。
系统有很多内联样式覆盖,我想完全删除它(我不想将它们转换为类,只需删除它们)。
我正在使用以下配置:
$config = array(
'indent' => true,
'output-xhtml' => true,
'drop-font-tags' => true,
'clean' => true,
'merge-spans'=> true,
'drop-proprietary-attributes'=> true,
);
然后像这样运行:
$test = '<p><span style="font-size: 10px;">Some content goes here.</span></p>';
$tidy = new tidy;
$tidy->parseString($test, $config, 'utf8');
$body = $tidy->body();
var_dump($body->value);
但输出仍然是:
<body>
<p>
<span style="font-size: 10px;">Some content goes here.</span>
</p>
</body>
如何让Tidy删除style="font-size: 10px;"
部分,或完全删除span
标记。
我在documentation中看不到任何可以做到这一点的其他内容。
答案 0 :(得分:1)
您可以自己删除样式属性:
$test = '<p><span style="font-size: 10px;">Some content goes here.</span></p>';
$dom = new DOMDocument;
$dom->loadHTML($test);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//*[@style]'); // Find elements with a style attribute
foreach ($nodes as $node) {
$node->removeAttribute('style'); // Remove style attribute
}
$test = $dom->saveHTML();
$tidy = new tidy;
$tidy->parseString($test, $config, 'utf8');
$body = $tidy->body();
var_dump($body->value);