PHP5.2より下のバージョンでjson_encode

毎度のWebARENA SuiteXさんですが・・・
PHP5.3(今回に限っては5.2以上)で問題なければこんな苦労はしないのだけど、
Concrete5でアドオン入れたら、json_encodeでエラー吐かれたんで
対処方法調べて見っけたのでメモ。
json_encodeがPHP5.2以降じゃないと使えないという罠。

下記からJSON.phpをダウンロード。
http://pear.php.net/package/Services_JSON/

以下のrequire_onceに合わせて配置。

// json_encode()関数が存在しないなら
if (!function_exists(‘json_encode’)) {
// JSON.phpを読み込んで
require_once ‘JSON.php’;
// json_encode()関数を定義する
function json_encode($value) {
$s = new Services_JSON();
return $s->encodeUnsafe($value);
}
// json_decode()関数を定義する
function json_decode($json, $assoc = false) {
$s = new Services_JSON($assoc ? SERVICES_JSON_LOOSE_TYPE : 0);
return $s->decode($json);
}
}
// 以降、json_encode(), json_decode() が使用可能
else { }

取り敢えずエラーが出る該当箇所にぶっこんで出来るようになったからOK。

なんとなくでelse作っちまったけど要らんかったかね・・・
まぁ、両対応ってことでいいか。