ホームページ >バックエンド開発 >PHPの問題 >php json解析エラーが発生した場合の対処方法

php json解析エラーが発生した場合の対処方法

藏色散人
藏色散人オリジナル
2021-03-05 09:13:413800ブラウズ

php json 解析エラーの解決策: 最初に PHP サンプル ファイルを作成し、次に「json_last_error()」関数を通じて json 解析の特定のエラーを手動で取得し、最後にエラーに応じて修正します。

php json解析エラーが発生した場合の対処方法

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

PHP 解析 json、xmlエラー

jsonの解析

php組み込み関数json_decode()はjson文字列を解析できます

しかし、正しく見えるjsonが解析されない 常に null を返します。

json の解析に失敗する可能性があり、現時点では PHP はプロンプトを生成しないことをご存知ですか。

json_last_error() 関数を通じて手動で取得する必要があります

function json_decode_siam($string, $mark = false){
    $data = json_decode($string, $mark);
    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            return $data;
            break;
        case JSON_ERROR_DEPTH:
            echo ' - 已超出最大堆栈深度';
            break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - JSON无效或格式错误  状态不匹配';
            break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - 发现意外的控制字符 可能编码错误';
            break;
        case JSON_ERROR_SYNTAX:
            echo ' - 错误符号,json格式错误';
            break;
        case JSON_ERROR_UTF8:
            echo ' - 格式错误的UTF-8字符,可能是错误编码的';
            break;
        default:
            echo ' - Unknown error';
            break;
    }
}

xml の解析

php では、xml を解析する方法がいくつかあります。主に異なる拡張環境に依存しています。

ここでは、私がよく使うこのメソッドについて説明します

simplexml_load_string();
simplexml_load_file();

文字列またはファイルをロードして解析し、S​​implexml オブジェクトを返すことができます

このメソッドでは、 XML 形式が間違っています。エラーが直接生成されます。

$str = "不是xml字符串";
$data = simplexml_load_string($str);
var_dump($data);

get

bool(false)
PHP Warning:  simplexml_load_string(): Entity: line 1: parser error : Start tag expected, &#39;<&#39; not found in /usercode/file.php on line 4
PHP Warning:  simplexml_load_string(): 不是xml字符串 in /usercode/file.php on line 4
PHP Warning:  simplexml_load_string(): ^ in /usercode/file.php on line 4

これは例外ではなく PHP エラーであるため、try{}catch(){) は使用できません

この部分の知識は将来改善される可能性があります (主に先輩たちが多くの記事を書いているため)

#[推奨学習: "

PHP ビデオ チュートリアル "]

以上がphp json解析エラーが発生した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。