Simple HTML DOM Parser でコメントアウト部分を消す方法
こんにちは!
Webシステム部の長谷です。
今回は、PHPでHTMLを解析することができる「Simple HTML DOM Parser」を使用して、
HTMLのコメント部分(<!-- -->
)を除去する方法をご紹介します。
というのも、とある案件にてSimple HTML DOM Parserを使用して
HTMLの最適化を行っていたのですが、
その際、使い方など色々と調査をしていたのですが、
コメントに関しては触れられている方があまりいなかった(あまり使わないから?)ので
備忘録も兼ねてここに残しておこうと思った次第であります。
Simple HTML DOM Parserの導入
ライブラリのダウンロード
マニュアル
PHP Simple HTML DOM Parser Manual
対象HTMLファイル
comment_out.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <! DOCTYPE html> < html lang = "ja" > < head > < meta charset = "utf-8" > < title >株式会社ビヨンド</ title > </ head > < body > <!-- 会社名 --> < h1 >株式会社ビヨンド</ h1 > <!-- ビヨンドの企業理念 --> < h2 >「共に創り支え続ける」</ h2 > < h3 >私たちビヨンドの仕事は、ITを通じて新しい価値を創造する人々を支えること。</ h3 > < p >それは決して華々しい仕事ではないが、ユーザーがより快適に・楽しく生活するためにはなくてはならない存在だと考えます。 単なるシステムサービスのみではなく、創り手のビジネスチャンスを広げるための"人の輪"や"情報"を提供することにより、 互いに成長できる関係を長期的に作りあげることを使命とします。</ p > <!-- 上記の「会社名」「ビヨンドの企業理念」のように一行のコメントはもちろん このように複数行に渡って 記述されているコメントも 削除することが可能です --> </ body > </ html > |
実行PHPの作成
ライブラリを読み込む
1 | require_once 'simple_html_dom.php' ; |
対象HTMLを読み込む
1 | $html = file_get_html( 'comment_out.html' ); |
コメント部分を抽出して除去
1 2 3 | foreach ( $html ->find( "comment" ) as $comment ) { $comment ->outertext = "" ; } |
$html->find("comment")
でコメント部分を配列で抽出でき、
$comment->outertext = "";
で要素を空文字(除去)にできます。
保存する
1 2 | $body = $html ->save(); $html ->clear(); |
ファイルに書き込む
1 | file_put_contents ( "comment_out_delete.html" , $body ); |
完成したPHPファイル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php // ライブラリを読み込む require_once 'simple_html_dom.php' ; // 対象HTMLを読み込む $html = file_get_html( 'comment_out.html' ); // コメント部分を抽出して除去 foreach ( $html ->find( "comment" ) as $comment ) { $comment ->outertext = "" ; } // 保存する $body = $html ->save(); $html ->clear(); // ファイルに書き込む file_put_contents ( "comment_out_delete.html" , $body ); ?> |
PHP実行後のHTMLファイル
comment_out_delete.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <! DOCTYPE html> < html lang = "ja" > < head > < meta charset = "utf-8" > < title >株式会社ビヨンド</ title > </ head > < body > < h1 >株式会社ビヨンド</ h1 > < h2 >「共に創り支え続ける」</ h2 > < h3 >私たちビヨンドの仕事は、ITを通じて新しい価値を創造する人々を支えること。</ h3 > < p >それは決して華々しい仕事ではないが、ユーザーがより快適に・楽しく生活するためにはなくてはならない存在だと考えます。 単なるシステムサービスのみではなく、創り手のビジネスチャンスを広げるための"人の輪"や"情報"を提供することにより、 互いに成長できる関係を長期的に作りあげることを使命とします。</ p > </ body > </ html > |
正常にコメントが除去されましたね。
最後に
私が所属するシステム開発のサービスサイト「SEKARAKU Lab(セカラク ラボ)」を開設しました。
ビヨンドは、サーバーの設計・構築から運用までをワンストップでお任せいただけますので、サーバーサイド開発でお困りの方はお気軽にお問い合わせください。
SEKARAKU Lab:[https://sekarakulab.beyondjapan.com/](https://sekarakulab.beyondjapan.com/)
以上となります。
この記事がお役に立てば【 いいね 】のご協力をお願いいたします!