|
|
|
| Назрела тут проблемка в принципе глупая а догнать я чё то немогу.
Суть такая скрипт состоит из 3 блоков:
1блок форма для ввода урла файла со списком урлов
2блок обработчик этого файла вытаскивание урлов и сохранение их в массив
3 блок обработчик урлов
Дык вот я чего то недогоняю как совместить это всё чтобы 3блок последовательно обработал все урлы занесённые в массив знаю что цикл надо зделать непонимаю как.
//*******************************************
//Форма куда урл файла для обработки вставляется
include "lib.php";
include "admin_head.tmp";
echo "<form method=post action=upd.php>";
echo "URL страницы ";
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
(25.05.2005 в 22:50)
| | Хм... а чем вас не устраивает этот вариант, вроде ничего криминального не видно... | |
|
|
|
|
|
|
|
для: cheops
(26.05.2005 в 12:40)
| | Дык блин я вот тоже непонимаю в чём ботва но факт в том что список урлов должен по идее обрабатываться, а он необрабатывается в мускул одни пустые поля записываются вот я нифига и неврубаюсь чё за ботва | |
|
|
|
|
|
|
|
для: sata
(29.05.2005 в 11:55)
| | После строки
<?php
preg_match_all('/stockno[^\w]+href="([^\"]+)/i', $page, $res);
?>
|
выведите массив $res
В нём всё нормально? | |
|
|
|
|
|
|
|
для: cheops
(29.05.2005 в 13:05)
| | Дык в том то и дело что нормально список урлов выводится. Я вот чего думаю может это каким то боком играет роль то что сперва идёт запись в файл а потом тока скрипт заносит в мускул потому что файл всегда нулевой получается или курл что то с массивами портачит | |
|
|
|
|
|
|
|
для: cheops
(29.05.2005 в 13:05)
| | Что самое интересное если зделать без списка урлов напрямую из формы отпрвлять 1 урл то всё работает Дастиш фантастиш. Да кстати скрипт приведён не весь смысл таков курл открывет урл записывает исходник туда потом регами исходник чистим и записываем что надо в мускул. | |
|
|
|
|
|
|
|
для: sata
(29.05.2005 в 14:27)
| | Хм... а файл "catalog.txt" для чего нужен - не очень из кода понятна его функция? | |
|
|
|
|
|
|
|
для: cheops
(29.05.2005 в 22:41)
| | А туда исходник страницы записывается для дальнейшей обработки. Я приложил весь скрипт в аттаче для полноты картины. | |
|
|
|
|
|
|
|
для: sata
(30.05.2005 в 00:31)
| | А вы поставьте проверку
<?php
if(!mysql_query("Очень длинный запрос"))
{
exit("Ошибка - ".mysql_error());
}
?>
|
Чего-нибудь выводится? | |
|
|
|
|
|
|
|
для: cheops
(30.05.2005 в 00:42)
| | Хм и как это дешифровать ? | |
|
|
|
|
|
|
|
для: sata
(30.05.2005 в 00:44)
| | Я просто вначале подумал, что $ отсутвует в переменных в SQL-запросе, потом увидел, что это имена столбцов и стёр сообщение :))) | |
|
|
|
|
|
|
|
для: cheops
(30.05.2005 в 00:46)
| | Ага выводит
Ошибка - You have an error in your SQL syntax near 'Очень длинный запрос' at line 1 | |
|
|
|
|
|
|
|
для: sata
(30.05.2005 в 00:51)
| | Нет :))) за место "Очень длинный запрос" нужно поместить тот, который в файле - я просто не стал его приводить, чтобы не перегружать тему кодом... Это демонстрация того, как следует обработать вашу функцию mysql_query. | |
|
|
|
|
|
|
|
для: cheops
(30.05.2005 в 00:54)
| | Теперь понятно откуда у меня чуство что я ступил =). Не в этом плане всё нормально ничё невыводит | |
|
|
|
|
|
|
|
для: sata
(30.05.2005 в 00:59)
| | Хм... я в таких случаях делаю таким образом, беру содержимое, которое передаётся функции mysql_query и вывожу его в окно браузера, беру его от туда и выполняю в каком-нибудь другом клиенте, в том же phpMyAdmin - сравниваю ощущения - деваться ошибке будет некуда, либо в окно браузера не всё выведется, либо phpMyAdmin ругнётся, либо добавится новая запись... | |
|
|
|
|
|
|
|
для: cheops
(30.05.2005 в 01:06)
| | Дык дело в том что записи в мускул добавляются всё как надо скока урлов стока записей, тока записи пустые необработанные. Вывод фигня какая то на стыке когдакогда курл открывает страницу копирует результат в файл и обрабатывается регами.
Ну дык вот последний результат в файле должен сохраниться а он пустой. Дык вот что то с открыванием файла и записью, но блин казус какой просто то без массива с одним урлом всё работает. | |
|
|
|
|
|
|
|
для: sata
(30.05.2005 в 19:54)
| | А... я кажется понял, поробуйте заменить
<?php
$ch = curl_init ("$res[1][$i]");
?>
|
на
<?php
$ch = curl_init ("$res[$i][1]");
?>
|
И вообще вам помоему следует изменить порядок формирования массива в регулярных выражениях при помощи константы PREG_SET_ORDER, которая передаётся в качестве четвёртого параметра функции preg_match_all(). | |
|
|
|
|
|
|
|
для: cheops
(30.05.2005 в 21:17)
| | Всё разобрался я с этим Г на самом деле всё оказалось банально почему то кавычки всё портили =)
$ch = curl_init ($res[1][$i]);
|
| |
|
|
|
|
|
|
|
для: cheops
(30.05.2005 в 21:17)
| | =) Я с ума сойду. Я в шоке. Я просто в ауте.
Тема такая для теста сохранил страницу характеристик машин и зделал файл в котором 2 урла на локальный и на сайт. Ну дык вот скрипт локальный файл обрабатывает как надо, а страницу с инета нихрена необрабатывает правда прогресс есть он что то читает но помоему error страницу. А одиночные урлы обрабатывает как надо. Опять хрень с массивом или ещё что.
Уважаемые кому не впадлу поможите кто чем сможет потому что я в полном Г нифига непонимаю в чём бага
В файле
upd.php - файл со скриптом
test.htm - страница с хар-ми машин локальная
6.htm - список урлов на машины в инете | |
|
|
|
|
|
|
|
для: sata
(03.06.2005 в 23:49)
| | Если URL такого вида getimage.aspx то он не даст вам загружать страницы - это ASP.NET - там сессия на сессии, пока к нему Internet Explorer не обратится он даже страницу нормально отображать не будет, а если к нему обращается скрипт, который не может создать сессионную куку - он ничего не даст скачать. В ASP.NET почти каждая страница сессией прошита. | |
|
|
|
|
|
|
|
для: cheops
(04.06.2005 в 12:44)
| | Но тогда парадокс полусается одиночный урл обрабатывает этого вида а массив урлов нет это как понимать. У меня на сайте пока рабочий запущен урл в поле вставил обработал машин тысячи штук 10 в день пихнул для разнообразия и номана а вот со списком урлов беда. На сайте аукциона страницу открыл со ссылками на машины страницу сохранил локально скрипт запустил регами обрабатывает все ссылки в массив пихает дальше циклом обработаться должно но хрень какая то что курл чё то с массивом работать неочень то и хочет | |
|
|
|
|
|
|
|
для: sata
(04.06.2005 в 13:46)
| | Мда помоему этот парадокс так и останется неразрешёным потому что идей у меня нет =) | |
|
|
|
|
|
|
|
для: sata
(04.06.2005 в 20:35)
| | У меня идей тоже нет... отладить на живом примере у меня не получилось так как в архиве не все файлы, которые нужны для запуска Web-приложения. | |
|
|
|
|
|
|
|
для: cheops
(04.06.2005 в 21:28)
| | Да я вроде всё пихнул что нужно а чего нехватает ? | |
|
|
|