2014-11-16 13 views
0

команда Cron - Wget --spider 'URL'curl_setopt работает отлично в браузере, но не на вкладке хрон

PHP файл- существует

function getHTML($url,$timeout) 
{ 

$ch = curl_init($url); // initialize curl with given url 

     curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); //set useragent 

     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // write the response to a variable 

     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow redirects if any 

     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // max. seconds to execute 

     curl_setopt($ch, CURLOPT_FAILONERROR, 1); // stop when it encounters an error 

     return @curl_exec($ch); 

} 

error- Удаленный файл и может содержать дополнительные ссылки, но рекурсия отключена - не извлекается.

не получается, куда я иду.

ответ

0

Проблема в том, что вы ссылаетесь на '$_SERVER["HTTP_USER_AGENT"]' на строку 6, но при выполнении из crontab $ _SERVER ['HTTP_USER_AGENT'] не определен. Используйте isset(), чтобы проверить, существует ли элемент массива.


<?php 
function getHTML($url,$timeout) 
{ 

     $ch = curl_init($url); // initialize curl with given url 

     curl_setopt($ch, CURLOPT_USERAGENT, (isset($_SERVER["HTTP_USER_AGENT"]) ? $_SERVER["HTTP_USER_AGENT"] : "PHP/5.5")); //set useragent 

     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // write the response to a variable 

     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow redirects if any 

     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // max. seconds to execute 

     curl_setopt($ch, CURLOPT_FAILONERROR, 1); // stop when it encounters an error 

     return @curl_exec($ch); 

} 
+0

та же ошибка - Удаленный файл существует и может содержать дополнительные ссылки, но рекурсия отключена - не загружается. – asjain

+0

Я использую сервер godaddy. Возможно ли, что они отказались получать данные с URL-адреса через cron-задания? – asjain

+0

теперь он работает, я изменил http_user_agent на isset ($ _ SERVER ["HTTP_USER_AGENT"])? $ _SERVER ["HTTP_USER_AGENT"]: «PHP/5.5», и я сменил команду cron на/usr/local/bin/php -q «путь к файлу». Большое спасибо .. – asjain

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