나는 무슨 일이 일어나고 있는지 단서가 없지만 배열 안에 문자열이 있습니다. 먼저 이것을 실행했기 때문에 문자열이어야합니다.
$array[0] = (string)$array[0];
$ array [0]을 일반 텍스트로 브라우저에 출력하면 다음과 같이 표시됩니다.
hellothere
하지만 JSON 인코딩 $ array하면 다음과 같이 표시됩니다.
hello\u0000there
또한 'there'부분 (\ u0000 뒤의 비트)을 구분해야하는데 작동하지 않습니다.
explode('\u0000', $array[0]);
\ u0000이 무엇인지 또는 PHP에서 어떻게 제어하는지조차 모릅니다.
나는이 링크를 보았다 : 내 json에서 \ u0000을 찾아 제거하려고 ... 생성 된 JSON을 str_replacing하는 것을 제안합니다. 나는 그것을 할 수 없으며 (먼저 위에서 언급 한대로 분리해야 함) Google에서 '백 슬래시 \ 0 바이트에 대한 PHP 검사'를 확인했지만 여전히 무엇을 해야할지 모르겠습니다.
\uXXXX
JSON 유니 코드 이스케이프 표기법 ( X
16 진수)입니다.
이 경우 0
NUL 바이트라고도 하는 ASCII 문자를 의미하며 분할하려면 다음 중 하나를 수행 할 수 있습니다.
explode('\u0000', json_encode($array[0]));
또는 더 나은 방법 :
explode("\0", $array[0]); // PHP doesn't use the same notation as JSON
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다