2014-09-06 358 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