2014-09-06 8 views
0

Я хочу получить любую страницу этого сайта: http://alhayat.com используя curl.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)); 

но возвращаемое значение всегда нуль.

Я попытался найти решение, но ничего не получилось.

Любые идеи?

+1

Что в '$ data', возвращенного этим' $ данных = curl_exec ($ ч); 'линии? Почему ты думаешь, что это Джон? – zerkms

+0

Что возвращает 'var_dump ($ data)'? –

+0

Прежде чем функция Jason_decode проверяет ответ на echo $ data; для отладки ответа. – zakaria

ответ

1

Просто удалите строку

$data = json_decode($data, true); 

, который будет возвращать сайт как возвращаемое значение

+0

Я удалил эту строку ($ data = json_decode ($ data, true);) и скрипт работает в localhost, но на моем сервере возвращается только этот веб-сайт (alhayat.com) (504 Gateway Time-out) и другой веб-сайт Работа. whay? – user3231235

+0

Возможно, у вас медленное соединение на вашем сервере и требуется более длинный CURLOPT_CONNECTTIMEOUT? Попробуйте установить 'CURLOPT_CONNECTTIMEOUT => 600' – bensch

+0

Я получаю это сообщение: Ошибка: не удалось подключиться к hostbool (false). Любые идеи? – user3231235

Смежные вопросы