今日の目標は、RSSを解析して、投稿内容を表示することなのだ。
というわけで、まずは「XML RSS」とか「XML PHP パース」とかでググってみるわけ。
それで出てきたサイトの内容を参考にすれば、ほぼ終わり。
終わりなんだけど、、、終わりなんだけどさ、、、、、
さっぱり意味がわからないのですよ。
http://www.hawk.34sp.com/stdpls/php/xml_parse.html
↑
これとか。
いや、わからないってのはスキルがないからわからないんだけどさ。
というわけで、一生懸命解析しました。
ダイジェストでお楽しみください。
XMLのパースな手順(ダイジェスト版)
材料:
- XML(今回はRSS)のファイルまたはURL一つ
- xml_parser_create();
- xml_parse_set_option();
- xml_parse_into_struct();
- mb_convert_encoding();
- そのほか、echoなど…
今回は単純に表示をしただけなので難しい事はしていません。とりあえず、流れは。
- RSSファイルを開く、読み込む
- 読み込んだファイルをパースする
- パース下ファイルを連想配列に入れる
- 配列を表示する
というような流れです。
ファイルを開くなどは、基本的な部分なので、個人的に何とかしてください。
まず、XMLのパースに必要なのはパーサです。
// パーサ作成
$parser=xml_parser_create();
これでパーサの作成完了。(パーサがなんなのかは知りません)
次に、パーサオプションを指定します。
// パーサオプションを指定
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
これでパーサオプションの指定が完了です。(パーサオプションがなんなのかはしりま。。。略)
続いて、パースを実行して連想配列にします。
// パース実行、連想配列にパース結果代入
xml_parse_into_struct($parser,$buff,$values,$idx);
作ったパーサ[$parser]によって、[$buff]の中のXMLを[$values]に連想配列でぶち込みます。($idxがなんなのかはしr略)
// パーサ開放
xml_parser_free($parser);
連想配列にいれる。
それを表示する。
複数のRSSを読み込む場合は、XMLのヘッドタグを解析して、そこでフィードが終わってしまうので、やはりDBに一度つっこんで、フィードを再表示するようにひと工夫が必要そうだ。
[関連性があるかもしれない記事]
