Как вы получаете Tidy, чтобы раздеть встроенные стили

Я пытаюсь использовать 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 пометить в целом.

Я не вижу ничего другого в документация это сделало бы это.

1

Решение

Вы можете просто удалить атрибут 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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]