最近なぜか、hetemlサーバ借りたんですよね。heteml使っているとクリエーターっぽいかな、FLASHERぽいかな、とか適当な理由です。すみません。何も考えずに借りたので自宅サーバと違って色々制限があるので戸惑っております。
さて、mixiアプリとかOpenSocialアプリケーションを作っているとJSONで値を返してほにゃららみたいな話があるかと思います。そこで、webservice側でJSONで値を返すための仕組みが必要となってきます。今回はレンタルサーバの定番言語である(勝手に決めた)phpを使おうと思ったので、phpのお話です。
ところで、hetemlのphp5.xのバージョンは5.1.xであり、php-jsonモジュールも入っていないようなので、Zend Frameworkで対応します。
Zend Frameworkを手に入れる
Zend Frameworkからライブラリをダウンロードしてきます。おもむろにMinimalを選択します。
サーバへ転送する。
先にダウンロードしたアーカイブを解凍すると、libraryフォルダの中にZendというフォルダがあります。自分に割り当てられたディレクトリは
/home/sites/heteml/users99/h/o/g/hoge
のような感じになっていると思います。ここにlib/phpとか作ってあげてZendフォルダをアップロードします。
/home/sites/heteml/users99/h/o/g/hoge/lib/php/Zend
こんな感じなりますよ。
使ってみる。
<?php ini_set("include_path", "/home/sites/heteml/users99/h/o/g/hoge/lib/php"); require_once "Zend/Json.php"; $work_list = array("hoge"=>true, "list" =>array(3,4,5)); $encoded = Zend_Json::encode($work_list); header("Content-Type: text/javascript; charset=utf-8"); print $encoded; ?>
ブラウザからこのphpにアクセスして下記のように表示されればOK
{"hoge":true,"list":[3,4,5]}
まぁ、そもそもphp-jsonモジュール入れてもらえないかなとか、php5.2.xにバージョンアップしてくれないかな、とかお問い合わせ中。返答が来たらお知らせします。
php-jsonが使えるなら
エンコードする際に、$encoded = json_encode($work_list);という感じです。
追記
php-jsonモジュールの導入予定は無いそうです。php5.2.xへのバージョンアップの予定はあるけど未定といったところ。よって、Zend Framework使うのが手っ取り早いですね。