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のタイトルを取得して表示するというもの。