2011-12-17 8 views
3

$ post関数を使用して資格情報をPHPスクリプトに送信し、資格情報をチェックするjQueryログインフォームがあります。PHP 4.4.1 JSON ENCODE

PHP 5.2を使用していて、echo json_encode($ data)を使用しています。私のPHPスクリプトで、何らかの問題を起こすことなく、ログインフォームにエラーメッセージを送り返すことができます。問題は、PHP 4.4.1がインストールされているクライアントがあり、このコマンドを認識せず、次のエラーがスローされます。

致命的なエラー:未定義の関数の呼び出し:json_encode()

バージョンPHP 4.4.1で()json_encodeと等価はありますか?

助けがあれば助かります。

ありがとうございます。

+1

PHP 4.4.1が2005年10月31日にリリースされました。これまでに更新されていない理由はありません。あなたのコードを変更するのではなく、PHPに伝えることをお勧めします。 –

+0

[PHP 4でのJSONの使い方](http://www.epigroove.com/posts/97/how_to_use_json_in_php_4_or_php_51x) – Clive

+0

[PHP 5.1.6 json_encodeとcodeigniter]の複製が可能です(http://stackoverflow.com/questions)/2900511/php-5-1-6-json-encode-and-codeigniter) – mario

答えて

2

このラッパー関数は、http://www.boutell.com/scripts/jsonwrapper.htmlを使用する必要があります。この解決策で行う必要があるのは、json_encode.phpというincludeであり、function_existsのチェックを行います。存在しない場合は、関数を追加します。

1

JSONサポートは、バージョン5.2.0以降のPHPコアでサポートされています。だから代わりにPECL::jsonを使用する必要があります。

また、PHP4のサポートが2007-12-31から中止され、セキュリティ上の問題が発生している可能性があるため、PHP5にアップデートすることを検討してください。

0

Services_JSON(PEARの一部)は、php4と互換性があります。あなたはどちらかそれへのアクセス権を持っていない場合は、私はあなたがちょうどあなた自身の機能を記述する必要があります怖い:

function my_json_encode($arrayus) { 
    $newarr = '{'; 
    foreach ($arrayus as $key => $val) { 
     $newarr .= '"' . $key . '":"' . $val . '",'; 
    } 
    $newarr = substr($newarr, 0, strlen($newarr) - 1); 
    $newarr .= '}'; 
    return $newarr; 
} 

上記json_encode()と互換性がではありませんが、それはあなたの目的のために働くこと。