F.Ko-Jiの「一秒後は未来」ではウェブやSEO、API、RSSといった技術的ネタから、ちょっとした豆知識や梅酒、エンタメ系まで様々な情報を不定期にお届けしています。

PHP4でXMLをJSONに変換するメモ < プログラミング < F.Ko-Jiの「一秒後は未来」 < fkoji.com

PHP4でXMLをJSONに変換するメモ

スポンサード リンク

APIを使ってアプリケーションを構築していると、どうしてもXMLをJSONに変換して使いたくなることが多かったのでやってみた。XMLからJSONへの変換はJavaScriptでやる場合とXMLをGETしてくるプログラム側でやる場合とが考えられるが、今回はなんとなくプログラム側にした。しかしサーバのPHPはPHP4なのでSimpleXMLは使えない。

そこで、XMLからPHP変数への変換はXML_Unserializerを利用し、PHP変数からJSONへの変換はJsphonを使った。変換する関数は次のような感じ。

require_once("HTTP/Request.php");
require_once("XML/Unserializer.php");
require_once("Jsphon/Jsphon.php");

function xmlToJson($url, $callback = "") {
 $req =& new HTTP_Request($url);
 if (PEAR::isError($req->sendRequest())) {
  die($req->getMessage());
 }
 $xml = $req->getResponseBody();
 $xml = mb_convert_encoding($xml, "UTF-8", "auto");

 $unserializer =& new XML_Unserializer();
 $unserializer->setOption('parseAttributes', TRUE);
 $status = $unserializer->unserialize($xml);
 if (PEAR::isError($status)) {
  die($status->getMessage());
 }
 $json = Jsphon::encode($unserializer->getUnserializedData(), false);
 if ($callback != "") {
  $json = $callback . '(' . $json . ')';
 }
 header("Content-Type: text/javascript; charset=utf-8");
 echo $json;
}

これを少しいじれば、パラメータにURLとコールバック関数を与えるとJSONを返してくれるAPIとして使える。XMLなのでAmazon Web ServiceのRESTの取得とか、RSSファイルの取得とかがこれひとつでできる。


コメントを投稿

(承認されるまでコメントは表示されません。)

プログラミング

English version

「PHP4でXMLをJSONに変換するメモ」を携帯で読む

前のエントリー: « Google Earth の衛星画像のライセンス料は5億ドル
次のエントリー: モバイルSuicaの電池切れの恐怖 »

トラックバック

このエントリーのトラックバックURL:

この一覧は、次のエントリーを参照しています: PHP4でXMLをJSONに変換するメモ:

» rss2json:RSS(XML)からJSONに変換する方法まとめ(てかYahoo!Pipesでいいじゃん?) from creazy photograph
いまさらかもしれないけどね。 ■Perlな方法  ・[JSON] コイツ、速いぞ... [詳しくはこちら]

このブログをRSSリーダーで簡単購読
Subscribe with livedoor Reader Add to Google My Yahoo!に追加 Subscribe with Fastladder Bloglinesで閲読登録 はてなRSSに追加 エキサイトリーダーに登録

タイトル:

URL:

リンク用HTMLタグ:

powered by Google Chart API

ケータイ会議4参加中
最近の注目記事
プロフィール
F.Ko-Ji
F.Ko-Ji (Koji Fukunaga)

ウェブエンジニアだけど技術の深いとこにはあまり興味がなくて、さくっとアイデアを形にするのが好きです。ブログには自分のアンテナにひっかかったものを色々書いてます。

詳しいプロフィールはこちら
Twitter
梅酒.in
powered by 梅酒.in
えもにゅ

↑ 気持ち記録サービス「えもにゅ」です

月別アーカイブ


<< July 2009
SuMoTuWeThFrSa
 1234
567891011
12131415161718
19202122232425
262728293031 
人気エントリー
TopHatenar
グリムス
毎日の歩行記録
携帯からのアクセスは
QRコード
http://mob.fkoji.com/