json_forwards() 이스케이프 슬래시
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
플래그를 설정합니다(PHP 5.4+).
!important reader: https://stackoverflow.com/a/10210367/367456 (당신이 다루고 있는 것을 알고 있는 - 적을 알고 있는 경우: 웹/브로드 컨텍스트에서 사용하지 마십시오.CLI는 CGI가 적절하지 않은 한 가독성을 위해 JSON HTTP 컨텍스트에서 필요하다고 생각되면 다른 문제가 있습니다.)
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/"
네, 하지만 그러지 마세요 - 앞으로 슬래시를 피하는 것은 좋은 일입니다.내부에서 JSON을 사용하는 경우<script>
태그는 필수입니다.</script>
스크립트 태그를 종료합니다.
JSON을 사용하는 위치에 따라서는 필요하지 않지만 무시해도 무방합니다.
반대로, 저는 PHPUNIT이 URL이 json_encoded인 URL에 포함되거나 동일하다고 주장하는 데 문제가 있었습니다.
내 예상:
http://localhost/api/v1/admin/logs/testLog.log
부호화 대상:
http:\/\/localhost\/api\/v1\/admin\/logs\/testLog.log
비교가 필요한 경우 다음을 사용하여 URL을 변환합니다.
addcslashes($url, '/')
적절한 출력을 얻을 수 있습니다.
그런 상황에 직면해야 했고, 간단히 말해서
str_replace("\/","/",$variable)
나한테는 효과가 있었어.
언급URL : https://stackoverflow.com/questions/10210338/json-encode-escaping-forward-slashes
'programing' 카테고리의 다른 글
kuid_t 및 이와 유사한 데이터 유형은 왜 구조화됩니까? (0) | 2022.09.27 |
---|---|
이 이상한 글자들을 어떻게 변환하죠?( (, ,, ,, (, (, )) (0) | 2022.09.27 |
2개의 열을 기준으로 한 순위 (0) | 2022.09.27 |
여러 값을 반환하려면 어떻게 해야 합니까? (0) | 2022.09.26 |
InnoDB 교착 로그 이해 (0) | 2022.09.26 |