>  기사  >  백엔드 개발  >  php json 파싱 오류가 발생하면 어떻게 해야 할까요?

php json 파싱 오류가 발생하면 어떻게 해야 할까요?

藏色散人
藏色散人원래의
2021-03-05 09:13:413740검색

php json 구문 분석 오류에 대한 해결 방법: 먼저 PHP 샘플 파일을 만든 다음 "json_last_error()" 함수를 통해 json 구문 분석의 특정 오류를 수동으로 가져오고 오류에 따라 수정합니다.

php json 파싱 오류가 발생하면 어떻게 해야 할까요?

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.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;
    }
}

parsing xml을 수동으로 얻어야 ​​합니다

PHP에서는 주로 다양한 확장 환경에 의존하는 xml을 구문 분석하는 여러 가지 방법이 있습니다.

제가 자주 사용하는 이 방법에 대해 이야기해보겠습니다

simplexml_load_string();
simplexml_load_file();

문자열이나 파일을 통해 불러와서 파싱하고 Simplexml 객체를 반환할 수 있습니다

이 방법에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.