2012-03-06 3 views
0

왜 var_dump가 참조 자 부분에 문제가있는 것일 때 NULL을 제공하는지 이해할 수 없습니다.json과 PHP에 대한 문제

$url = "https://ajax.googleapis.com/ajax/services/feed/find?v=1.0&q=cricket"; 
    $ref = $_SERVER['HTTP_REFERER']; 
    //echo $ref; 
    // sendRequest 
    // note how referer is set manually 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_REFERER, $ref); 
    $body = curl_exec($ch); 
    curl_close($ch); 

    // now, process the JSON string 
    //utf8_encode($body); 
    $json = json_decode($body); 
    var_dump($json); 
+1

무엇이'$ body' 변수에 있습니까? – hsz

+2

나를 위해 잘 작동합니다. $ url을 브라우저에 붙여넣고 데이터를 확인 했습니까? –

+0

여기에 있습니다. 정확히 문제없이 게시하십시오. 어떤 PHP 버전을 실행하고 있습니까? –

답변

0

PHP의 JSON 구문 분석기는 매우 엄격합니다. json_last_error()을 사용하여 디코딩이 실패한 이유에 대해 자세히 알아보십시오.

JSON이 UTF-8로 인코딩 된 경우 BOM (Byte-Order-Mark)이 없는지 확인하십시오. php.net에보고 된 소수의 사람들이 있기 때문에 파서는 BOM과 잘 작동하지 않습니다.

+0

다음과 같이했는데 아무런 오류도 반환하지 않았습니다 ...... 이제 왜 내가 디코딩하지 않는 것입니까? – Paradox

+0

최신 PHP 버전을 사용하고 json_last_error()에 대해 제대로 인코딩되었는지 확인했는데 오류가 발생하지 않았습니다 ..... 어떻게 해독해야합니까? – Paradox

+0

방금 ​​PHP 환경에서 스크립트를 시험해 보았습니다. 수정없이 완벽하게 작동했습니다. 나가는 HTTPS 연결을 차단하는 방화벽이 있습니까? – CodeZombie