Reputation: 21249
I'm trying to use Tidy to clean up and transfer some content from an old system.
The system has a lot of inline style overrides which I want to drop completely (I don't want to convert them to classes, just drop them).
I'm using the following config:
$config = array(
'indent' => true,
'output-xhtml' => true,
'drop-font-tags' => true,
'clean' => true,
'merge-spans'=> true,
'drop-proprietary-attributes'=> true,
);
And run it like this:
$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);
But the output is still:
<body>
<p>
<span style="font-size: 10px;">Some content goes here.</span>
</p>
</body>
How do I get Tidy to remove the style="font-size: 10px;"
part as well, or drop the span
tag altogether.
I can't see anything else in the documentation that would do that.
Upvotes: 1
Views: 1610
Reputation: 64687
You could just remove the style attribute yourself:
$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);
Upvotes: 1