たけまるの日記

たけまるの日記です。web関係の技術ネタが多いですが、好きなことを適当に書いています。

PHPのDOMDocument::loadHTML()がHTMLエンティティを変換してしまう件(未解決)

あえてHTMLエンティティのまま読み込んでそのまま出力してもらいたいのだけど、loadHTML()が勝手にもとに戻してしまい、これが元で意図した動作になってくれない。

この問題はこのへんでも論じられているが、解決はしていないみたいです。

stackoverflow.com

調べてみると、これの内部処理はlibxmlが行っている模様。 で、libxmlのドキュメントを読むとこの動作を制御するためのxmlSubstituteEntitiesDefault()というのが用意されているみたい。

http://xmlsoft.org/entities.htmlxmlsoft.org

でもPHPからこの関数を叩く方法が用意されていない…。 一応要望は出されているみたいだけど、2002年から放置なので対応する気はなさそう。

https://bugs.php.net/bug.php?id=15145bugs.php.net

こんなん見ても無いもんはないw

github.com

これはもうどうにもならんので他の方法を考えることにします。。