HTMLScrapingで苦戦…終了

引き続きHTMLScrapingのサンプルスクリプトHTMLToFeed.class.phpです。


つまづいたところについて振り返ってみます。

class〜 extends〜

PHP: exit - Manual
 http://jp.php.net/manual/ja/keyword.extends.php


▽クラスの継承(extends) (忘れっぽいエンジニアのためのPHPリファレンス)
 http://www.php-ref.com/basic/05_exntends.html


extendsキーワードでクラスを継承するとのこと。
頭が頭痛って感じですが、単にクラスを定義してるわけじゃないので見落としちゃいかんですね。


まぁ既にクラスがでてくる時点で、へろへろなんですけど

 クラス(Class)は、変数及びこれらの変数で動作する関数を1つに集めたものです。


▽クラスとオブジェクト
 http://www.komonet.ne.jp/~php/chap10.htm


クラスだのオブジェクトだの言われるとぴんとこないけど、これぐらいシンプルな例を出されるとわかりますね(ちょっと安心した)。


クラスの抽象化

protected abstract functionってなんじゃらほいと思ったら、より一層わからないことがorz
「拡張クラスにこのメソッドの定義を強制する」ようです。


▽クラスの抽象化
 http://php.mirror.camelnetwork.com/manual/ja/language.oop5.abstract.php


必要だよってことはわかりました。入門書がそろそろ1冊欲しいです。


……昔の会社で使ってた

が部屋の片隅に転がっていたので、ぱらぱらと該当箇所をめくってみました。
PostgreSQLなので一切触ってなかったんですが、PHP自体はバージョンが古いとはいえ、基本は一緒ですからいいですね。わかりやすいですね。ネットで大抵の情報は仕入れられるけど、小難しい情報は印刷された紙という媒体から得るのがまだまだ受け入れやすいですね。もちろん、本の出来がいいのもあると思いますけど(^_^)


ぐぁぁぁぁ

結局原因がわからず、サンプルスクリプトと同一の条件をつくって、ひとつひとつ変えてどの段階で動かなくなるかを確認することにしました。読み込まれるHTMLの方の中身を変えていって、2番目の divタグ の中の要素を選ぼうとした時点で動かなくなりました。あれ?


div[2]だよな。あれ、値が帰ってこなくなる。
とりあえずdiv[1]にしてみるか。
あれ、これでなんで2番目の divタグ の中の要素が帰ってくるんだ。


あ…………ひょっとして
div[0]。やっぱり1番目の divタグ の中の要素が帰ってくる( ̄□ ̄;


そうでした。配列の添え字は 0 から始まる整数値でしたorz


32時間前にも引用してるじゃないですか
3番目のbook要素」、「book[2]」と。

book要素は複数あるので、配列として扱うことができます。3番目のbook要素へは、

$article->book[2]
としてアクセスすることができます。


▽PHP5を試してみる - SimpleXML関数でRSSしてみる (Do you PHP?)
 http://www.doyouphp.jp/php5/php5_simplexml.shtml


あー、へこむわ。しかしこれでようやく前に進めます。