タグ内のタグを削除するには<style>
、いくつかの HTML コードをクリーンアップする必要があります。私はすでに PHP Tidy を使用してクリーンアップを行っていますが、PHP Tidy でこれらのタグを削除する方法が見つかりませんでした。<link>
<body>
解決策はありますか?または、別のマークアップ クリーナー PHP クラス...
Tidyでそれを行う方法はわかりませんが、DOMを使用できます
$dom = new DOMDocument; // init new DOMDocument
$dom->loadHTML($html); // load HTML into it
$xpath = new DOMXPath($dom); // create a new XPath
$nodes = $xpath->query('//body/style'); // Find all style elements in body tag
foreach($nodes as $node) { // Iterate over found elements
$node->parentNode->removeChild($node); // Remove complete style node
}
echo $dom->saveHTML(); // output cleaned HTML
要素については<link>
、Xpath を に調整し//body/link
ます。
Tidyの代わりにhttp://htmlpurifier.org/があります
HTML Purifierは、PHPで記述された標準準拠のHTMLフィルターライブラリです。HTML Purifierは、徹底的に監査され、安全でありながら寛容なホワイトリストを使用してすべての悪意のあるコード(XSSとして知られる)を削除するだけでなく、ドキュメントが標準に準拠していることを確認します。これは、W3Cの仕様に関する包括的な知識がなければ達成できません。
DOMソリューションとはまったく関係がないため、これを追加の回答にしました。