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

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

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

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

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

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

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

【次世代】ゲーム専用データ分析エンジン『ThinkingEngine』

【次世代】ゲーム専用データ分析エンジン『ThinkingEngine』

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

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

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【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
835
facebook twitter はてなブックマーク
【大阪 / 横浜】インフラエンジニア / サーバーサイドエンジニア 積極採用中!

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

この記事をかいた人

About the author

長谷竜弥

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

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

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

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