PHPでweblogUpdates.ping その5: 更新情報処理の実装
一番難しいと思っていたネットワーク通信周りがいともあっさり片付いてしまったので、受信した情報を処理してHTMLを生成する部分を次に実装します。
weblogUpdates.pingには、必ず2つの情報(更新されたブログのタイトルと、そのブログのURL)が含まれていて、他2つの引数は任意なので、今回の実装では任意の引数は無視して、確実に含まれている情報のみを利用しようと思います。
実際の処理自体は、ごく基本的なファイルI/Oと配列の処理ばかりなので、処理の流れを説明してもしょうがない(というか面白くない…コードを見てもらえれば一目瞭然なので)ので、ここは一つ、JavaプログラマがPHPでプログラムを書いた時に引っかかるかな、と思われる点、つまりは自分がつまずいた点をリストしていきたいと思います。完成品のコード自体は次回に公開します。
- PHPでは、全ての関数のスコープはグローバルになる。参考:PHP: 関数 - Manual
- 関数の外で定義された変数は、関数の中から自動的にアクセス可能にならない。グローバル変数を関数内で使うには、global キーワードを使って変数を関数内部で再定義する必要がある。参考:PHP: 変数のスコープ - Manual
- Javaで言う所の array.length は count($array)てな感じになる。
- Javaでの、クラスのメンバを呼ぶ際のドット(例:System.out.println)は、PHPでは->になる。
- PHPにはパッケージの概念がないらしい。
- 日本語を直接コード内にリテラルとして書く場合は、ダブルクォートではなくシングルクォートで囲まないとパーサが文句を垂れる。
- XHTMLの中でPHPをインラインで呼ぶ場合、xml宣言はPHPのechoなりprintなりを使って書き出してやらないとパーサが文句を垂れる。参考: XREA SUPPORT BOARD - Xhtml で Php。
- サーバの設定によっては、Header may not contain more than a single header, new line detected. in どうたらこうたら、というエラーを吐く場合がある。そんな時はおもむろに、スクリプトの始めに
error_reporting(0);
と書いてエラー出力を切ってやればいい。参考:Nucleus(JP)フォーラム :: トピックを表示 - pingサーバを作りたい
- string内に特定の文字列があるかどうかを判定したい場合は、strpos()を使って、返り値がfalseかどうかを見る。参考:PHP: strpos - Manual
コーディング中にいろいろ調べているうちに、結構いろんな人がPingサーバを作ってるらしい事も分かりました。まぁ車輪の再発明になってしまいましたが、自分としてはいい練習になってるので良しとしましょう。次回は完成品の公開です。
TrackBack
TrackBack URL for this entry:
http://www.ppmz.com/cgi-bin/mt/mt-tb.cgi/55