pagetaka

写真、PC、ネット、岡山、旅の話題をお届けします

PHP:HTMLタグを頼りに見出しを読みだす

あらすじ:PHPを使ってHTML文書のh1タグを抜き出すのに、simple_html_dom.php を使う

Wordpress(WP)を使っています。よそ様のサイト更新状況をRSS経由で再利用したいと思っているのですが、最近RSS配信しているサイトが減少傾向みたいです(妄想?)…。仕方ないので、DOM(この意味はあまり深く考えないで下さい)してくれるプラグインを使うのですが、結果的に爺が妄想するようなことになりません。

自分でpluginもどきをPHPで書いてしまおうという無謀な挑戦(≒暴走・徘徊)であります。HTMLタグはある程度読めるかな、という方がこの記事を「利用できる」と盲信・騙される(?)対象者であります…(怪…)

準備したもの:Windows7PC、IE、XAMPP、Mery、simple_html_dom.php

Window7のパソコン、InternetExplorerはまあ、これが8であろうとchromeであろうとOKかと思うです。

PHP Simple HTML DOM Parser を動くようにする

手順は以下の通りかと

  1. PHP Simple HTML DOM Parserから、ダウンロード(DL)する。圧縮ファイルなので、解凍する。解凍後のフォルダにはほかのサブフォルダやファイルがありますが、必要なのは、simple_html_dom.php のみです。
  2. 解凍したsimple_html_dom.phpを、xampp/php/pear フォルダに置く

php、xamppのことがわかる人には当たり前すぎることなのかも知れんですけど、耄碌爺には、このあたり、ちょっと戸惑いました…。

XAMPPが動くようにする

  1. XAMPPを起動し、Apacheを走らせる。参考:ファイル構成とXAMPPコントロールパネルの起動 - XAMPPの使い方
  2. IEhttp://127.0.0.1/ にアクセスする。それで、なにか、働いているぞ~というようなメッセージが出れば、OKなんだけど…。今回は、データベース(MySQL)は必要ない…。


phpスクリプトを保存する場所にtest.phpを保存して、http://127.0.0.1/test.php にアクセスし 「ab」と表示されたら、ファイル保存場所に間違いが無く、phpが動くことが確認できるのかな…などと思い込んであります。

text.php

以下のスクリプトをコピーし、Meryに貼り付けます。

<html>
<head>
</head>
<body>
<?php
echo ('ab');
?>
</body>
</html>

保存は、英数半角のファイル名、拡張子php、つまり「test.php」のファイル名でBOM無し、文字コードUTF-8で保存します。

保存する場所は、http://127.0.0.1/ (= http://localhost/ )に該当する場所…。

PHPスクリプトを作成する

以下のPHPスクリプトは、このブログをDOMしHTMLタグのh1要素とリンクを表示することになるのですが…。
test1.phpとでもして http://127.0.0.1/ (= http://localhost/ )に保存して下さい。なお、スクリプト内の$のあとは変数の名前ということで特に意味はありませぬので念のため…。

<html>
<head>
</head>
<body>
<?php
include('simple_html_dom.php');
$html = file_get_html('http://pagetaka.hatenablog.com');
foreach($html -> find('h1') as $midashi)
	echo $midashi->outertext;
?>
</body>
</html>

IE http://127.0.0.1/test1.php を表示してみる

IEを立ち上げ、 http://127.0.0.1/test1.php を呼び出してみてください。このブログの記事見出しが表示されたらOKです…。

このあと、WPに投稿できるようになるまでには相当な距離があるのだろうと妄想するです…。でも、まずは必要なデータを抽出できるようになったということは、前進と考えたい耄碌爺であります。