> 백엔드 개발 > PHP7 > 본문

php7 json_decode null에 대한 문제가 발생했습니다!

藏色散人
풀어 주다: 2023-02-18 09:16:02
앞으로
2420명이 탐색했습니다.

php7 json_decode null에 대한 문제가 발생했습니다!

특정 문제 설명:

1. 파일에 BOM 헤더가 없는지 확인하세요

2. 다음 방법을 사용하여 잘못된 문자열을 제거했지만 여전히 NULL이 출력됩니다

        $some_string = htmlspecialchars_decode($some_string);
        $some_string = preg_replace("/\t/", " ", $some_string);
        $some_string = preg_replace("/\n/", ' ', $some_string);
        $some_string = str_replace("\n", ' ', $some_string);
        $some_string = str_replace ('\n','', $some_string);
로그인 후 복사

3. 오류, 잘못된 JSON

4. 아래 스크린샷과 같이 문자열을 직접 출력하면 브라우저는 josn을 정상적으로 구문 분석할 수 있습니다. 표준 JSON 문자열 각 문자열 유형은 "

테스트 코드php7 json_decode null에 대한 문제가 발생했습니다!

<?php 
$jsonStr1 = &#39;{status: {RetCode:0, msg: "success"}, data: {}}&#39;;
var_dump(json_decode($jsonStr1, true));
var_dump(json_last_error());
echo "--------分割线--------".PHP_EOL;
$jsonStr2 = &#39;{"status": {"RetCode":0, "msg": "success"}, "data": {}}&#39;;
var_dump(json_decode($jsonStr2, true));
로그인 후 복사

Result

NULL
int(4)
--------分割线--------
array(2) {
  ["status"]=>
  array(2) {
    ["RetCode"]=>
    int(0)
    ["msg"]=>
    string(7) "success"
  }
  ["data"]=>
  array(0) {
  }
}
로그인 후 복사
============== 업데이트=============에 의해 발생해야 합니다. =
디버깅 후 BOM으로 인해 발생한 것으로 확인되었습니다. 해결 방법은 다음과 같습니다

$dataString = $merchant_arr[&#39;data&#39;];
$A = substr($dataString, 0, 1);
$B = substr($dataString, 1, 1);
$C = substr($dataString, 2, 1);
if ((ord($A) == 239) && (ord($B) == 187) && (ord($C) == 191)) {
    $dataString = substr($dataString, 3);
}
$dataArray = json_decode($dataString, true);
로그인 후 복사

추천 학습: "

PHP7 Tutorial

"

위 내용은 php7 json_decode null에 대한 문제가 발생했습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿