CakePHPでアプリを作成しているときに困ったので残しておく。
自分でサーバーを立ててアプリを公開してるっていう人は関係ないかもしれないけど、共有レンタルサーバーを借りているっていう人はPHPのバージョンをよく確認したほうがいい。
今回5.2以降で使えるようになった「json_decode」というファンクションを使おうとしたら、レンタルサーバーのバージョンが5.1だったので使えないという状態になってしまい、それの解決方法を記述しておく。
実は同じ機能を提供しているものがZend Frameworkにある、Zend_Jsonというモジュールだ。これを使えばPHPのバージョンが5.1の場合でも同じことが出来る。
まず、Zend Frameworkをダウンロードする。Zendは一つ一つのライブラリが独立しているので、必要なものだけ、必要なときに使えばよいようになっている。
そこで、ダウンロードしたライブラリの中から「lib/Zend/Json」フォルダと「lib/Zend/Json.php」ファイルを抜き出して、適当なフォルダにコピー。で、適当にincludeして、Json.phpを使えるようにそれば以下の方法でjson_decodeと同じ機能をもったファンクションを呼び出すことが出来る
$ret = array('ret' => $v); $ret = Zend_Json::encode($ret);
自分でPHPのバージョンを決めれない人は試してみてくだされ。