【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

Simple HTML DOM Parser でコメントアウト部分を消す方法

こんにちは!
Webシステム部の長谷です。

今回は、PHPでHTMLを解析することができる「Simple HTML DOM Parser」を使用して、
HTMLのコメント部分(<!-- -->)を除去する方法をご紹介します。

というのも、とある案件にてSimple HTML DOM Parserを使用して
HTMLの最適化を行っていたのですが、
その際、使い方など色々と調査をしていたのですが、
コメントに関しては触れられている方があまりいなかった(あまり使わないから?)ので
備忘録も兼ねてここに残しておこうと思った次第であります。

Simple HTML DOM Parserの導入

ライブラリのダウンロード

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/)

以上となります。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
1,236
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

長谷竜弥

新卒にて株式会社ビヨンドに入社。

Webシステム開発(Webサービス・デジタルコンテンツ・業務管理システム などのブラウザで動くサービス、システムの開発)や、ゲームAPI(アプリゲームとの通信部分のプログラム開発)を行っている。

また、Shopify のプライベート / カスタムアプリの開発も行っている。

元々は大阪オフィスに勤めていたが、2019年に横浜オフィスに転勤。
趣味は野球 / カラオケ / アニメ