2015-01-17 2 views
-1

Google에서 결과를 얻고 싶습니다. Google의 웹 API 문서에 따르면 이것이 내 코드입니다.CURL PHP 결과가 보이지 않음

<!DOCTYPE html> 
<html> 
<head> 
    <title>testing</title> 
</head> 
<body> 
    <?php 
     $page = 10; 
     $query = "Baby"; 
     $url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".$query; 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)'); 
     $body = curl_exec($ch); 
     curl_close($ch); 
     $json = json_decode($body); 
     var_dump($json); 
     echo $json; 
    ?> 
</body> 
</html> 

하지만 페이지에 아무런 오류도 표시되지 않습니다. 아무도 내가 왜 그것을 작동하지 못하는 및 오류를 잡는 방법 알아낼 수 있습니까?

+0

오류 로그를 확인 했습니까? 서버에 설치된 컬 확장을 확인 했습니까? –

+0

컬 자체에 오류가 있는지 확인해야합니다. 핸들을 닫기 전에 ['echo curl_error ($ ch);'] (http://php.net/manual/en/function.curl-error.php)를 확인하십시오. –

+0

출력이 예상되는 PHP의 빈 페이지는 _log 오류를 찾습니다. 코드를 개발하고 테스트 할 때 항상 스크립트 상단에서'error_reporting (E_ALL); ini_set ('display_errors', 1); ' –

답변

0

수천 가지 이유가있을 수 있습니다. 마찬가지로 일부 서버 구성 오류로 인해 cURL이 아웃 바운드 연결을 설정할 수 없음 ...

페이지 소스를 확인해보십시오. 그곳에 </body>을 표시하고 있습니까? 그렇지 않으면 치명적인 오류가 표시되지 않습니다. 오류를 표시하려면 ini_set('display_errors',1)을 표시하십시오.

무슨 일이 일어나는지 보려면 CURLOPT_VERBOSE을 사용하십시오. 다음보십시오 :

curl_setopt($curlhandle, CURLOPT_VERBOSE, true); 
$verbose = fopen('php://temp', 'rw+'); 
curl_setopt($curlHandle, CURLOPT_STDERR, $verbose); 
0

유일한 오류는 json_decode에 의해 반환 된 객체를 에코하려고하는 것입니다.

<b>Catchable fatal error</b>: Object of class stdClass could not be converted to string in ... 
+0

글쎄, 내 생각 엔, 오류가 당신이 찾고있는 것이 아니다 :) $ json 밖에서 혼자서 출력을 만들어야한다. 그것은 HTML 마크 업을 포함하지 않으며 오직 깨끗한 데이터 만 포함합니다. –