Проблем при изтегляне на файл от url

slavib

Active Member
Здравейте имам следният проблем при опит за изтегляне на файл ми създава празен файл или съобщение че файла е преместен
Пример
1ви Ред работи - както и за всички други линкове.
2ри Ред не работи - конкретно за този линк - точно там само е проблема в този линк.
Ще се радвам ако ми помогнете.

Код:
<?php 
readrssn ("http://nap.bg/newsRss");
readrssn ("http://nssi.bg/newsbg?format=feed");
	
function readrssn ($source)	{					
$ch = curl_init();
$timeout = 50;
curl_setopt($ch, CURLOPT_URL, $source);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
//curl_setopt($ch, CURLOPT_SSLVERSION,3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
//curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
//curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
//curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
//curl_setopt($ch, CURLOPT_HEADER, false);
//curl_setopt($ch, CURLOPT_FAILONERROR, true);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//curl_setopt($ch, CURLOPT_POST, true);

$data = curl_exec ($ch);
$error = curl_error($ch); 
curl_close ($ch);

$destination = "test2.xml";
$file = fopen($destination, "w+");
fputs($file, $data);
fclose($file);

}

?>
 
От: Проблем при изтегляне на файл от url

Не съм тествал с първия, но при втория url адрес се извършва пренасочване според езика в бисквитката, която се праща. При твоя вариант няма как да се прихванат бисквитки и изпада в един безкраен цикъл на пренасочване.

Разкоментирай ред и си създай файла cookie.txt:

PHP:
//curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
 
От: От: Проблем при изтегляне на файл от url

Не съм тествал с първия, но при втория url адрес се извършва пренасочване според езика в бисквитката, която се праща. При твоя вариант няма как да се прихванат бисквитки и изпада в един безкраен цикъл на пренасочване.

Разкоментирай ред и си създай файла cookie.txt:

PHP:
//curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");

пробвах го но не става - както и със предният ред - сигурно нещо не го пише правилно
тези редове с коментарите са ми пробите

stuklen - това което сте написали не работи винаги
 
От: От: От: Проблем при изтегляне на файл от url

пробвах го но не става - както и със предният ред - сигурно нещо не го пише правилно
тези редове с коментарите са ми пробите

Забравих да спомена че трябва да разкоментираш и ще един ред, понеже първоначално се прави пренасочване:

PHP:
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
 
От: Проблем при изтегляне на файл от url

Ето и задължителните опции, които трябва да имаш при инициализирането на curl сесията:

PHP:
curl_setopt($ch, CURLOPT_URL, $source);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, ''); // необходимо е само прихващането на бисквитки, без изпращане на такива
curl_setopt($ch, CURLOPT_HEADER, 0);

Добре е също, ако възникне curl грешка да си я записваш или извеждаш, за да не ти дава бял екран и да не знаеш какво става.
 
От: Проблем при изтегляне на файл от url

stan_bg - ще бъда много кратък
ти просто си велик
Благодаря
 

Горе