복붙노트

json_encode () 이스케이프 슬래시

PHP

json_encode () 이스케이프 슬래시

Instagram에서 JSON을 당겨 :

$ instagrams = json_decode ($ response) -> data;

그런 다음 변수를 PHP 배열로 파싱하여 데이터를 재구성 한 다음 파일을 다시 인코딩하고 캐싱합니다.

file_put_contents ($ cache, json_encode ($ results));

캐시 파일을 열 때 슬래시 "/"가 모두 이스케이프됩니다.

http : \ / \ / distilleryimage4.instagram.com \ / 410e7 ...

내 검색에서 json_encode ()가 자동으로이 작업을 수행합니다 ... 사용하지 않도록 설정하는 방법이 있습니까?

해결법

  1. ==============================

    1.예, JSON_UNESCAPED_SLASHES 플래그 만 사용해야합니다.

    예, JSON_UNESCAPED_SLASHES 플래그 만 사용해야합니다.

    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/"
    
  2. ==============================

    2.예, 그렇지만하지 마십시오 - 슬래시를 이스케이프 처리하는 것은 좋은 일입니다.