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
<!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の作成
ライブラリを読み込む
require_once 'simple_html_dom.php';
対象HTMLを読み込む
$html = file_get_html('comment_out.html');
コメント部分を抽出して除去
foreach ($html->find("comment") as $comment) { $comment->outertext = ""; }
$html->find("comment")
でコメント部分を配列で抽出でき、
$comment->outertext = "";
で要素を空文字(除去)にできます。
保存する
$body = $html->save(); $html->clear();
ファイルに書き込む
file_put_contents("comment_out_delete.html", $body);
完成したPHPファイル
<?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
<!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/)
以上となります。
この記事がお役に立てば【 いいね 】のご協力をお願いいたします!