curl vs fopen

botan

Новичок
curl vs fopen

Сижу, затупляю:

Код не работает
PHP:
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
//curl_setopt($curl,CURLOPT_HEADER,0);
//curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_TIMEOUT,30); 
$out = curl_exec($curl);
echo $out;
Код работает:

PHP:
echo file_get_contents($url);
При чём для некоторыйх сайтов работают оба.
Для некоторых не работает curlовый.

Сайты без я ничего не передаю постом, а только гетом.
Из-за чего такое может быть ?
Что написать в курле что бы "гет" сайты открывались "всегда" ?
Я просто уже штук 20 варианто перебрал... И всё равно одна и та же фигня :)
 

Screjet

Новичок
Просто некоторые сайты посылают тебя на три буквы, т.к. неизвестных USER-AGENT'ов обслуживать не хотят.

Пропиши этого самого USER-AGENT'a.

(И исправь в своем примере синтаксическую ошибку)
 

botan

Новичок
почему тогда работает второй пример ?
Какого юзер-агента он засылает ?
 

EricCartman

Guest
PHP:
function download_pretending($url,$user_agent) {
  $ch = curl_init();
  curl_setopt ($ch, CURLOPT_URL, $url);
  curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
  curl_setopt ($ch, CURLOPT_HEADER, 0);
  curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  $result = curl_exec ($ch); 
  curl_close ($ch);
  return $result;
}
Работает на ура.
 

botan

Новичок
А если это дело по крону на сайте запускается, то что писать?

-~{}~ 27.12.04 11:15:

как ни странно - HTTP_USER_AGENT
совсем не при чём.
Я твой курловый код вставил - всё заработало :)
При этом оба моих (мой курловый и file_get_contents() )
никакого HTTP_USER_AGENT'а не передают.
 
Сверху