Проблема обработки массива в curl

sata

Guest
Проблема обработки массива в curl

Такая фигня уже второй день бьюсь и всё бестолку никак немогу врубиться что за бодяга есть массив урлов, с помощью курла пытаюсь эти урлы обработать но нифига неполучается. Самое интересное то что если взять просто 1 урл и проделать ту же операцию тока с одним урлом то всё работает, а с массивом нифига.
Заранее спасибо.

PHP:
//******************************************* 
//Форма куда урл файла для обработки вставляется 
include "lib.php"; 
include "admin_head.tmp"; 
echo "<form method=post action=upd.php>"; 
echo "URL страницы&nbsp;"; 
echo "<input type=\"text\" name=\"url\"><br>"; 
echo "<input type=submit name=go value=Обработать>"; 
echo "</form>"; 
//******************************************* 
//Обработка файла и вытаскивание списка урлов и сохранение всего в массив 
$page = file_get_contents("$url"); 
preg_match_all('/stockno[^\w]+href="([^\"]+)/i', $page, $res); 
for($i = 0; $i < count($res[1]); $i++) 
//******************************************* 
{ 
//А вот тут самое интересное нужно замутить чтобы 
//этот блок скрипта последовательно обработал весь массив урлов из прошлого блока 
$ch = curl_init ($res[1][$i]); 
$fp = fopen ("catalog.txt", "w"); 
curl_setopt ($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_exec ($ch); 
curl_close ($ch); 
fclose ($fp);
}
 

Кром

Новичок
sata
Отличный пример скрипта, где нужно искать ошибку самому.
Опредили, работает ли цикл вообще. А потом выводи то что находится внутри цикла и смотри что у тебя в переменных лежит.
 

sata

Guest
Автор оригинала: Кром
sata
Отличный пример скрипта, где нужно искать ошибку самому.
Опредили, работает ли цикл вообще. А потом выводи то что находится внутри цикла и смотри что у тебя в переменных лежит.
Цикл работает нормально я привёл тока часть кода дальше у меня идёт обработка регами и запись в базу дык вот запись происходит нормально скока урлов стока записей Короче Всё ОК. А вот с обработкой всё фигово и я уже просто незнаю в чём ошибка всё перепробовал что знал и пререлопатил всю инфу что нашёл в инете по этому поводу. Одиночный урл типа
PHP:
$ch = curl_init ($url);
работает нормально страница открывается и результат записывается в файл, а с массивом нифига чего то неоткрывается. Тут именно что то в курле и я непонимаю что
 

Кром

Новичок
Если все с одной записью нормально, значит и с curl все в порядке. Тебе просто нужно все последовательность строк, работающих для одной записи загнать в цикл.
 

SelenIT

IT-лунатик :)
Прошу прощения, а где в приведенном коде вообще запись в файл?
 

sata

Guest
Автор оригинала: SelenIT
Прошу прощения, а где в приведенном коде вообще запись в файл?
А что тогда означают эти строчки
PHP:
$fp = fopen ("catalog.txt", "w"); 
curl_setopt ($ch, CURLOPT_FILE, $fp);
На сколько я знаю это запись результата в файл
 

sakon

П..и.н..ок
РРасшифруй, что делает эта строка в цикле?
$fp = fopen ("catalog.txt", "w");
 

sata

Guest
Автор оригинала: sakon
РРасшифруй, что делает эта строка в цикле?
$fp = fopen ("catalog.txt", "w");
Чего то ничего криминального я невижу что эта строка в цикле. Файл открывется файл закрывается что такого ну можно вынести за цикл а толку то. Оптимизировать я буду тока когда заработает всё а такового я ещё ненаблюдаю и фиг знает когда увижу.
 

SelenIT

IT-лунатик :)
sata, см. [m]fopen[/m], описание режима "w":
...Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать.
Ты уверен, что именно это тебе нужно при каждом проходе цикла? Имхо, это не оптимизация, а просто отладка...
 

mani13

Новичок
'w' Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать.
 

sata

Guest
Автор оригинала: SelenIT
sata, см. [m]fopen[/m], описание режима "w":

Ты уверен, что именно это тебе нужно при каждом проходе цикла? Имхо, это не оптимизация, а просто отладка...
Обсолютно уверен я знаю что это и с чем это едят. У меня есть массив урлов которые нуно обработать. Урлы все в https поэтому использую курл. файл нужен как буфер в него записывается исходник страницы урла и далее этот файл обрабатывается регулярками и инфа заносится в мускул и так всё в цикле. Мне нужно чтобы каждый урл обработался последовательно.
 

sata

Guest
Автор оригинала: SelenIT
Где это происходит?
Сразу после fclose ($fp);
Всё в 1 цикле находится и занос мускул тоже. Проблема точно не в регах потому что повторяю одиночный урл обрабатывает нормально
 

nikit87

Новичок
CURLOPT_RETURNTRANSFER вроде в ненулевое поставь значение! и $ff=curl_exec($ch) а потом обработай $ff регулярками и не заморачивайся с файлом
 

sata

Guest
Автор оригинала: nikit87
CURLOPT_RETURNTRANSFER вроде в ненулевое поставь значение! и $ff=curl_exec($ch) а потом обработай $ff регулярками и не заморачивайся с файлом
Сча попробую

-~{}~ 10.06.05 00:25:

Автор оригинала: sata
Сразу после fclose ($fp);
Всё в 1 цикле находится и занос мускул тоже. Проблема точно не в регах потому что повторяю одиночный урл обрабатывает нормально
Ну прогресс небольшой есть при запросе курла он почему то обрабатывает error страницу сайта, как будто урл задан неверно. Хотя урлы в массиве нормальные и на error не ведут в браузере их открывал всё как надо я думаю бодяга где то в этой строке $ch = curl_init ($res[1][$i]); Какие нибудь кавычки или ещё что то. что могло подпортить урл
 

nikit87

Новичок
Автор оригинала: sata
Ну прогресс небольшой есть при запросе курла он почему то обрабатывает error страницу сайта, как будто урл задан неверно. Хотя урлы в массиве нормальные и на error не ведут в браузере их открывал всё как надо я думаю бодяга где то в этой строке $ch = curl_init ($res[1][$i]); Какие нибудь кавычки или ещё что то. что могло подпортить урл
Ты возьми печатай рядом с curl_init $res[1][$i] и посмари что она из себя представляет. Хотя если отображается error page то все ок. И во вторых какая ошибка то?? Включи заголовки в трансфер и посмари номер. может там bad request
 

sata

Guest
Автор оригинала: nikit87
Ты возьми печатай рядом с curl_init $res[1][$i] и посмари что она из себя представляет. Хотя если отображается error page то все ок. И во вторых какая ошибка то?? Включи заголовки в трансфер и посмари номер. может там bad request
Зделал по 1 пункту нормал выводит
PHP:
https://www.iaai-bid.com/vehicledetails.aspx?auctionid=3364960&itemid=3700418
по второму пункту Х.З. выводит
PHP:
HTTP/1.1 302 Found Date: Fri, 10 Jun 2005 15:31:20 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 1.1.4322 Location: /customErrorPage.html?aspxerrorpath=/vehicledetails.aspx Set-Cookie: ASP.NET_SessionId=c3jkkw45z1lhnhqg54iake45; path=/ Cache-Control: private Content-Type: text/html; charset=utf-8 Content-Length: 173
 
Сверху