[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа curl_init() некорректный цикл
s300s400
Хост работает на РНР 5.2.6, ОС Linux 2.6, Apachi 1.3.43.
Скрипт должен читать из файла в своей директории прямые ссылки на файлы картинок, и копировать их в указанную директорию с нужным названием.
Вот мой код:

<?php
// вытаскаваем из базы последний, записанный id строки ,
//который от части и есть имя нового файла

$db = mysqli_connect("localhost", "s300s400_test","753","s300s400_test");
$table="url";
$sql = "select * from ".$table." order by id desc; ";
$result=mysqli_query($db,$sql);
$d=mysqli_fetch_assoc($result);
$i=$d["id"]+1; // нумерация загруженных файлов начнется с последнего +1
$f=fopen('1.txt','r');// файл с прямыми ссылками на файлы
//$source это записи формата:
//http://farm3.static.flickr.com/2624/4116405627_51821a7d63.jpg

for($source=fgets($f);$source!='';$source=fgets($f)){
$dest = "img/".$i.".jpg"; // даем имя файлу
$mem=substr($source,31, strlen($source)); // обрезка лишнего
$sql = "select * from ".$table." where url ='".$mem."';";
$result=mysqli_query($db,$sql);// проверяем есть ли такая запись
$d=mysqli_fetch_assoc($result);
if ($d["url"]==''){ // открываем копирование если в базе нет такого юрл

$fileName="img/".$i.".jpg";// Имя файла, который будет сохранен на данном сервере
//закачка

$fp=fopen($fileName,"w");//создаем пустой файл
fclose($fp);
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $source );// задаем ссылку для скачивания
$fp=fopen($fileName,"w+");//открываем файл для записи
curl_setopt($ch, CURLOPT_FILE, $fp);// записываем в файл
curl_setopt($ch, CURLOPT_REFERER, $source);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_exec ($ch);//выполняем команды curl
curl_close ($ch);//завершаем сеанс curl
fclose ($fp);//закрываем файл

echo $source." Произведена загрузка файла на сервер";//выводим сообщение, что файл загружен
$sql = "insert ".$table." (id,url) values('','".$mem."'); ";
$result=mysqli_query($db,$sql) or die(" не хочет работать..."); // записываем в базу сокращенные ссылки
$i=$i+1; } // закрываем копирование
else {echo "<br>".$source." Присутствует в БД"; }
}
// закрываем цикл
fclose($f);
?>

Ситуация в следующем: если я запускаю этот код, то закаченные избражения все одинаковые (вывод зделал исходя из размера закаченных файлов), и ни одно не открывается. Но если указываю прямые ссылки на закачиваемое изображение:
[php]
curl_setopt($ch, CURLOPT_URL, 'http://farm3.static.flickr.com/2624/4116405627_51821a7d63.jpg ');
curl_setopt($ch, CURLOPT_REFERER, 'http://farm3.static.flickr.com/2624/4116405627_51821a7d63.jpg ');
[/php]

Тогда загрузка этого файла происходит корректно, но мне нужно загружать по циклу, несколько изображений.

Если есть у кого -нибуть мысли, прошу высказать. Буду признателен. Потому как за РНР сижу месяц от силы два, и с CURLOPT дело имею в первые.





Спустя 2 часа, 54 минуты, 15 секунд (19.11.2009 - 18:19) s300s400 написал(а):
Все решил вопрос. Делов спец символах из строк файлов. \r\n
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.