PHPプログラムに関する各種メモ書き

PHPでHTMLタグの閉じ忘れを修正する PECL::Tidy

TidyとはHTMLタグの閉じ忘れを直したりHTML修正を行う便利なソフトです。

Xpathでスクレイピングを行うときにHTMLが完璧でないと正しく取得できないので事前に整形を行います。

なおPECL拡張なのでインストールにはサーバー管理者権限が必要です。

インストールは yum で

yum install php-tidy

apache再起動

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

関連エントリー

No.758
07/13 10:10

edit

Xpath