Я пытаюсь использовать 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
пометить в целом.
Я не вижу ничего другого в документация это сделало бы это.
Вы можете просто удалить атрибут style самостоятельно:
$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);
Других решений пока нет …