$a = '{ "tag": "<b></b>" }';
echo json_encode(json_decode($a));
이 출력 :누구나 json_encode와 json_decode를 사용하여이 PHP 코드를 설명 할 수 있습니까?
{"tag":"<b><\/b>"}
당신은 출력 정확하게 입력 것이라고 생각합니다. 어떤 이유로 json_encode는 추가 슬래시를 추가합니다.
$a = '{ "tag": "<b></b>" }';
echo json_encode(json_decode($a));
이 출력 :누구나 json_encode와 json_decode를 사용하여이 PHP 코드를 설명 할 수 있습니까?
{"tag":"<b><\/b>"}
당신은 출력 정확하게 입력 것이라고 생각합니다. 어떤 이유로 json_encode는 추가 슬래시를 추가합니다.
그것은 아마도 보안 기능의
표준 JSON의 일부 문자
any-Unicode-character- except-"-or-\-or- control-character \" \\ \/ <---- see here? \b \f \n \r \t \u four-hex-digits
이기 때문. 이스케이프 된 버전 (예 : 출력)은 자바 스크립트 (예 : \/
이 /
)가 이스케이프 처리되지 않은 버전과 유사하게 구문 분석됩니다. 이렇게 슬래시를 벗어나면 브라우저가 Javascript 문자열을 HTML로 잘못 해석 할 가능성이 줄어 듭니다. 물론 데이터를 올바로 취급한다면 이것이 필요하지 않아야하므로 우둔한 프로그래머가 스스로를 망쳐 놓는 것을 막을 수 있습니다.
입력 내용이 유효하지 않지만 JSON 파서와 마찬가지로 PHP의 JSON 파서가 구문 분석을 수행합니다.
그것에 대해 무엇이 잘못 되었나요? –
문자열 밖의 여분의 공백이 없어야한다고 생각합니다. – bot403
사용이 :
echo json_encode($a,JSON_HEX_TAG)
결과는 다음과 같습니다 당신은이 문서를 읽을 수 있습니다
["\u003C\u003E"]
가로 json_encode에 대한 지식을 향상시키기 위해
http://php.net/manual/en/function.json-encode.php
당신은 정말 가정 할 수 없습니다 귀하의 JSON 문자열이 정확합니다. –