2014-09-06 356 views
0

我想要得到這個網站的任何頁面:http://alhayat.com using curl。PHP CURL總是返回空

這是我到目前爲止的代碼:

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)); 

,但返回的值總是空。

我試圖找到一個解決方案,但沒有任何工作。

任何想法?

+1

是什麼在'受此'$數據= curl_exec($ CH)返回$ data';'行?你爲什麼認爲它是json? – zerkms 2014-09-06 01:35:12

+0

什麼返回'var_dump($ data)'? – 2014-09-06 01:39:31

+0

在Jason_decode函數通過echo $ data檢查響應之前;調試響應。 – zakaria 2014-09-06 01:39:57

回答

1

只需刪除該行

$data = json_decode($data, true); 

,將返回該網站的返回值

+0

我刪除了這一行($ data = json_decode($ data,true);)和腳本在localhost中工作,但在我的服務器中只有這個網站(alhayat.com)返回(504 Gateway Time-out)和另一個網站工作。 whay? – user3231235 2014-09-06 03:25:01

+0

也許你的服務器連接速度很慢,需要更長的CURLOPT_CONNECTTIMEOUT?嘗試設置'CURLOPT_CONNECTTIMEOUT => 600' – bensch 2014-09-06 09:10:50

+0

我收到此消息: 錯誤:無法連接到hostbool(false)。 任何想法? – user3231235 2014-09-06 19:11:22