2011-10-07 3 views
1

다음 이유가 발생하지 않는다고 생각합니다. 내가 브라우저에 요청 URL을 붙여 넣을 때bool을 반환하는 PHP json (false)

$request_url = "someurl?myId=$id"; //returns feed like above 

$json = file_get_contents($request_url, true); //getting the file content 

$decode = json_decode($json, true); 

var_dump($json); 

나는 JSON 데이터를 다시 얻을하지만 PHP에서 시도 할 경우 위해서 var_dump는 단순히 부울 (거짓)입니다; 어떤 아이디어?

업데이트 및 수정 모든 도움을 주셔서 감사합니다. 당신이 나를 추적하도록 도왔습니다. php.ini 파일이 URL 열기를 허용하지 않도록 설정되어 있으므로 file_get_contents가 작동하지 않습니다. 다양한 사이트에서 언급 된 다음과 같은 편리한 기능을 발견하여 사용했습니다. 다른 사람을 돕기 위해 내가 사용한 방법이 여기있다.

function file_get_contents_curl($url) { 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser. 
curl_setopt($ch, CURLOPT_URL, $url); 

$data = curl_exec($ch); 
curl_close($ch); 

return $data; 
} 
+0

include_path에 없으므로 두 번째 매개 변수를 true로 설정해야하는지 확실하지 않은지 확인하십시오. [이 댓글] (http://php.net/manual/en/function.file-get-contents.php#95665)도 문제와 관련이 있습니다 – Einacio

+4

1) JSON이 유효하지 않습니다. 2) 어떤 이유로 스크립트가 스크립트에 액세스 할 수 없습니다. 당신은 로그인해야합니다. 3) 우리가 그것을 해결할 수 있도록 우리에게 실제 URL을 보여주십시오. – lonesomeday

+0

loneomeday 외에도 [json_last_error()] (http://php.net/manual/function.json-last-error.php)를 사용해보십시오. – ComFreek

답변

0

나는 문제를 복제했으며 ajax URL이 잘못되었을 때 bool (false)을 관찰했다. "someurl"이 올바른지 확인하십시오.

JSON이 유효하지 않은 경우에도 스크립트는 올바르게 인쇄합니다. URL에서 아무 것도 반환하지 않으면 'string (0)' '' '

문제는 잘못된 URL입니다.

0

아마도 응답 요청의 $ request_url은 'utf-8'또는 'ansi'가 아닙니다.

0

PHP 설명서에 따르면 file_get_contents은 실패시 false를 반환합니다. 이것은 URL이 유효하지 않거나 PHP에서 액세스 할 수 없음을 의미합니다.

서버에서이 작업을 시도하는 경우 방화벽이이 외부 트래픽을 차단하고 있지 않은지 확인하십시오.