外部のアプリケーションとデータの受け渡しをしているシステムを別のサーバーに移さなければならなかったので、淡々と慎重にでも味噌汁をすすりながら移行作業を終わらせ、テストで動かしてみたらFatal errorが返ってきました。

PHP Fatal error:  Call to undefined function json_encode() ・・・

json_encode()関数が定義されていない・・・?

というわけでサーバーのPHP環境を確認してみると(最初に確認しろっと)PHPのバージョンは5.1でした。どうやらjson_encode()関数は5.2以降で定義されてる関数とのこと。

・・・自前でなんとかしろってことですかね(´・ω・`)

代用処理を書くとしたらかなり骨が折れるし、ここに工数を割くわけにもいかないので、jsonまわりの情報を探してみたらPEARのサイトでjson関数ファイルが提供されているとのことなので頂いてきました。ありがたや(´;ω;`)

http://pear.php.net/package/Services_JSON/

自分がDLしたバージョンは1.0.3です。

ファイルを解凍するとJSON.phpが入っているのでこれをサーバーに配置して、requireで呼び出します。

    if (!function_exists('json_encode')) {
        require_once 'JSON.php';
            function json_encode($value) {
                $s = new Services_JSON();
                return $s->encodeUnsafe($value);
            }

            function json_decode($json, $assoc = false) {
                $s = new Services_JSON($assoc ? SERVICES_JSON_LOOSE_TYPE : 0);
                return $s->decode($json);
            }
    }

これでjson_encode()json_decode()も使えるようになりました。゚ヽ(゚´Д`)ノ゚。ヤッターン