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