php json解析錯誤怎麼辦

藏色散人
發布: 2023-03-08 12:58:02
原創
3741 人瀏覽過

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();
登入後複製

可以透過字串或文件,載入然後解析,傳回Simplexml物件

在這個方式中,如果xml格式錯誤,則會直接產生報錯

$str = "不是xml字符串";
$data = simplexml_load_string($str);
var_dump($data);
登入後複製

得到

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中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板