2014-09-06 5 views
0

이 웹 사이트의 모든 페이지를 얻으려고합니다 : http://alhayat.com 컬 사용.PHP CURL은 항상 null을 반환합니다.

지금까지이 내 코드 :

ini_set('display_errors',1); 
error_reporting(E_ALL); 
error_reporting(E_STRICT); 
function getData($url){ 
    $ch = curl_init(); 
    curl_setopt_array($ch, array(
     CURLOPT_URL => $url, 
     CURLOPT_RETURNTRANSFER => 1, 
     CURLOPT_FOLLOWLOCATION => 1, 
     CURLOPT_COOKIESESSION => true, 
     CURLOPT_FILETIME => true, 
     CURLOPT_CONNECTTIMEOUT => 55, 
     CURLOPT_FAILONERROR => 0, 
     CURLOPT_SSL_VERIFYPEER => false, 
     CURLOPT_TIMEOUT => 45, 
     CURL_HTTP_VERSION => true, 
     CURLOPT_HEADER => true, 
     CURLOPT_BINARYTRANSFER => true, 
    )); 

    $data = curl_exec($ch); 

    if(curl_errno($ch)) 
    { 
     echo 'error:' . curl_error($ch); 
    } 

    curl_close($ch); 

    $data = json_decode($data, true); 

    return $data; 
} 
$url = 'http://alhayat.com'; 
var_dump(getData($url)); 

하지만 반환 값은 항상 null입니다.

해결책을 찾으려고했지만 아무 것도 효과가 없었습니다.

아이디어가 있으십니까?

+1

이'$ 데이터 = curl_exec ($ ch를)에 의해 반환되는 $의 data''의 새로운 기능으로 사이트를 반환합니다 라인

$data = json_decode($data, true); 

을 삭제,'라인을? 왜 저 사람이 거기 있다고 생각하니? – zerkms

+0

'var_dump ($ data)'를 반환하는 이유는 무엇입니까? –

+0

Jason_decode 함수가 echo $ data;로 응답을 확인하기 전에; 응답을 디버그합니다. – zakaria

답변

1

그냥 반환 값

+0

이 줄을 지우고 ($ data = json_decode ($ data, true);) 스크립트는 localhost에서 작동하지만 내 서버에서는이 웹 사이트 (alhayat.com) 만 반환하고 (504 게이트웨이 시간 초과) 다른 웹 사이트 작업. 뭐라구? – user3231235

+0

서버에 연결 속도가 느리고 긴 CURLOPT_CONNECTTIMEOUT이 필요합니까? 보십시오'CURLOPT_CONNECTTIMEOUT => 600' – bensch

+0

이 메시지가 나타납니다 : 오류 : hostbool에 연결할 수 없습니다 (false). 아이디어가 있으십니까? – user3231235

관련 문제