hetemlのPHPでJSON使う

最近なぜか、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使うのが手っ取り早いですね。