CSSやWEBデザインなど、WEBの世界に関するものが中心です。最近はプログラミング寄りですが。jQueryとか、PHPだとCakePHP使ったりします。Flashは紹介するだけ。たまに大学生活やビジネスについても。

php4でTwitterAPIを使うなら、形式はXMLよりJSONがおすすめだというお話。

XREAレンタルサーバを使う機会があったんですが、そこではPHPのバージョンが4.4.8でした。
 
このサーバでAPIから取得したTwitterのタイムラインを表示させたかったのですが、PHP4ではXMLのパースにsimplexmlは使えないですし、JSONでもdecode_jsonが使えません。
 
というわけで別の方法を試してみたんですが、XMLとJSONの両方を試してみて、結局JSONを使うことにしました。XMLを採用しなかった原因は文字化けです。XMLをパースするライブラリがうまく日本語をパースしてくれなかったので、JSONを採用することにしました。
今回はXMLもJSONも一番簡単そうな方法を使ったので、XMLのパースも別の方法ならうまくいくかもしれません。
 
今回はうまく行かなかったXMLのパース方法とJSONのパース方法と合わせて紹介します。
 

XML

まずはXMLのパースから。PHP4でXMLをパースする方法は、EC Studioの記事にまとまっているのがあります。
PHP4でのXMLデータの取り扱い – EC studio 技術ブログ
 
今回はこの中のKeith Devens – PHP XML Libraryを使いました。リンク先からライブラリをダウンロードできます。
(記事を書いているときに気づきましたが、うまくパースできない時もあるって書いてありますね^^;)
 
使い方は本当に簡単で、一つのファイルをインクルードして関数を使うだけです。

//xml.phpが今回使うライブラリです。
include('xml.php');
//$xml_dataはXMLファイル。
$data = XML_unserialize($xml_data);

こうして関数を通すと、連想配列になるんですが、今回は日本語が文字化けしてしまって使い物になりませんでした。

 
 

JSON

というわけで使ったのがJSON形式。こちらのパースにはJsphonというPEARライブラリを使います。
ただ、こちらのJsphonはPEARに依存してないみたいなので、今回は普通にDLしたファイルをインクルードして使いました。
 
使い方は株式会社RYUSのブログが詳しいです。
Jsphonをcodereposにアップロードしました。 – XOOPS専門-株式会社RYUS
 
このJsphonの入手なんですが、公開元が閉鎖してしまったため、僕はこちらのサイトからDLしました。
Jsphonのインストール(リンク切れで困っている人へ)
 
使い方は簡単で、単純にJSONファイルをデコードするだけならJsphon1.0.1/Jsphon/Decoder.phpを使えばOKです。こんな感じ。

require_once 'Jsphon/Decoder.php';
$json = new Jsphon_Decoder();
//$json_dataはJSONファイル。
$data = $json->decode($json_data);

$dataは連想配列になります。日本語も文字化けしません。

 
 
というわけで、PHP4でのXMLとJSONのパース方法の紹介でした。どうしてもPHP4の環境でXMLやJSONを使う必要に迫られたときに、こういうライブラリも知っておかなくてはいけませんね。
 
 

Leave a comment for: "php4でTwitterAPIを使うなら、形式はXMLよりJSONがおすすめだというお話。"