TidyとはHTMLタグの閉じ忘れを直したりHTML修正を行う便利なソフトです。
Xpathでスクレイピングを行うときにHTMLが完璧でないと正しく取得できないので事前に整形を行います。
なおPECL拡張なのでインストールにはサーバー管理者権限が必要です。
yum install php-tidy
apachectl graceful
$html = '<html><body><p>タグの閉じ忘れテスト</body></html>'; if ( ! in_array('tidy',get_loaded_extensions(), true )){ die('このサーバではtidyが使用できません'); } $config = array('indent' => false, 'output-xhtml' => TRUE, 'wrap' => 200); $tidy = tidy_parse_string($html, $config, 'UTF8'); $h = tidy_get_html($tidy); $html = $h->value;
以上の簡単なコードで実現できますが、整形するソースファイルが大きいとメモリ、プロセス共に大量に使用するので注意。
$configに設定できるオプションはこちら
http://tidy.sourceforge.net/docs/quickref.html