슬래시를 이스케이프 처리하는 json_encode ()
Instagram에서 JSON을 가져옵니다.
$instagrams = json_decode($response)->data;
그런 다음 변수를 PHP 배열로 구문 분석하여 데이터를 재구성 한 다음 파일을 다시 인코딩하고 캐싱하십시오.
file_put_contents($cache,json_encode($results));
캐시 파일을 열면 슬래시 "/"가 모두 이스케이프 처리됩니다.
http:\/\/distilleryimage4.instagram.com\/410e7...
json_encode()
이 작업 을 자동으로 수행하는 검색에서 수집 합니다 ... 사용 중지하는 방법이 있습니까?
비활성화하는 방법이 있습니까?
예, JSON_UNESCAPED_SLASHES
플래그 만 사용하면 됩니다.
! 중요한 글 : https://stackoverflow.com/a/10210367/367456 (당신이 다루고있는 것을 알고-적을 아십시오)
json_encode($str, JSON_UNESCAPED_SLASHES);
PHP 5.4가 없다면, 기존의 많은 기능 중 하나를 선택하여 필요에 따라 수정 하십시오 ( 예 : http://snippets.dzone.com/posts/show/7487 (보관 된 사본)) .
<?php
/*
* Escaping the reverse-solidus character ("/", slash) is optional in JSON.
*
* This can be controlled with the JSON_UNESCAPED_SLASHES flag constant in PHP.
*
* @link http://stackoverflow.com/a/10210433/367456
*/
$url = 'http://www.example.com/';
echo json_encode($url), "\n";
echo json_encode($url, JSON_UNESCAPED_SLASHES), "\n";
출력 예 :
"http:\/\/www.example.com\/"
"http://www.example.com/"
예 . 그러나 슬래시를 이스케이프 처리 하지 않는 것이 좋습니다 . <script>
태그 내부에서 JSON을 사용 </script>
하는 경우 문자열 내부에서도 스크립트 태그를 종료해야합니다.
JSON이 사용되는 위치에 따라 필요하지 않지만 안전하게 무시할 수 있습니다.
반대로, URL이 json_encoded 된 URL에 포함되어 있다고 주장하는 PHPUNIT에 문제가 있습니다.
내 예상 :
http://localhost/api/v1/admin/logs/testLog.log
다음과 같이 인코딩됩니다.
http:\/\/localhost\/api\/v1\/admin\/logs\/testLog.log
비교가 필요한 경우 다음을 사용하여 URL을 변환하십시오.
addcslashes($url, '/')
내 비교 중에 적절한 출력을 허용했습니다.
참고 URL : https://stackoverflow.com/questions/10210338/json-encode-escaping-forward-slashes
'Programing' 카테고리의 다른 글
원본을 참조하면서 JavaScript 함수 재정의 (0) | 2020.06.07 |
---|---|
캡처 한 그룹 만 바꾸는 방법? (0) | 2020.06.07 |
루비에서 안전한 정수 파싱 (0) | 2020.06.07 |
C ++의 스택, 정적 및 힙 (0) | 2020.06.07 |
Javascript-문서가로드되었는지 감지하는 방법 (IE 7 / Firefox 3) (0) | 2020.06.07 |