PHPでHTMLを解析

ずっとやろうと思ってたHTML解析をやってみた。

HTML解析は、DOMDocument->loadHTML()関数を使用して出来ることはできる。

<?php
$doc = DOMDocument::loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();

$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?> 

これだと簡単に動かせない。っということで、google先生に聞いて結果引っかかったのが以下の方法。

これの回答[5]が非常に参考になる。回答[5]に記載してあるURLからファイルがダウンロードでき、それを使用すると簡単にHTML解析ができる。
サンプルを記述すると以下となる。

<form action="./" method="post">
<input type="text" name="url">
<input type="submit">
</form>

<?php
	include( "scrape_func.php" );

	$url = $_POST["url"];

	if ($url) {
		$sData = getURL( $url );
		$sData = mb_convert_encoding($sData, "UTF-8", "auto");
		$sData = cleanString( $sData );
		$title = getElement( "title", $sData );

		echo "TITLE:" . $title . "<br>";

		$title = getBlock( "<title>", "</title>", $sData, false );

		echo "TITLE:" . $title . "<br>";
	}

?>

単純にテキストボックスに記載されたURLのタイトルを取得して表示するというもの。

出来上がり図

総評

これは非常に便利。これを使用して何か作ろうかな。



久しぶりに検索したら上位に来てたからびっくり!
こっちのほうが分かりやすいよ

PHPでHTML解析 - パート2 - 僕のススメ。