![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Да, что еще хотел сказать. Остановить добавление значений не так уже просто. Даже при закрытии браузера и удаления файла-скрипа с сервера - добавление все-равно продолжается.
Вот код работы с MySql... Может тут бага??
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| Fally |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 17.8.2006 Где: Dahla Репутация: 3 Всего: 4 |
Вроде бы заметных ошибок нет, но могу ошибаться, единственное что удивило, почему в функции запроса не сделали place-holder'ов с использованием mysql_escape_string()?? Защиты хоть была бы от sql-injection...
|
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Можете показать как надо? Задавал. Я в ПХП не любитель, и не любитель ПХП. Писать вынужден ибо "жизнь заставила". Поэтому у меня нет ни желания ни большой нужды писать что-то свое, если уже есть готовое. Если можете чем-то помочь, что-то посоветовать - буду рад. Добавлено через 4 минуты и 57 секунд Все это время я экспериментровал и вот, что получилось: 1. Если подставить вместо запроса в базу $num++;, то ничего не происходит - ничего не выводиться на экран. (почему не понимаю). 2. Если после действия 1 убрать строку $tmp1=getdescription($out[1][$i]);, то выводиться 250. 3. Если после действия 1 "for ($j=1;$j<=10;$j++)" заменить на "for ($j=1;$j<=2;$j++)", то выведется 50. Что дальше?? ЗЫ я так понимаю, что в при действии 1 браузер (FF) просто "устает" ждать ответа с сервера, поэтому ничего и не показывает. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| Fally |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 17.8.2006 Где: Dahla Репутация: 3 Всего: 4 |
Пожалуйста:
Написан на РНР5, с использованием функции mysql_qw написанной Дмитрием Котеровым (Лаборатория dk).
Возникает, что браузер ждёт из-за того, что скрипт выполняется слишком долго (НО время выполнения скрипта РНР по умолчанию - 30 секунд, но и время ожидания тоже около 30 секунд.).. Сдаётся мне, что всё дело вот в этом месте: $tmp1=getdescription($out[1][$i]); Это сообщение отредактировал(а) Fally - 24.4.2007, 19:04 |
||||
|
|||||
| Sunvas |
|
||||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Fally, либо я неправильно интегрировал Ваш код, либо код нерабочий. Вот что говорит сервер:
Добавлено через 4 минуты и 44 секунды
Просто оно много раз вызывается. Здачал этого места - зайти по пропарсеной ссылке и пропарсить страницу. Как видно из кода, таких страниц 250. Хотя может быть и 1000 и 10000. Как поступать в этом случае? - не буду же я вызывать скрипт вручную несколько раз, чтоон парсил по 50 страниц. Хотелось бы это все дело оставить "на ночь". Только вот все-равно не пойму никак. Даже если скрипт выполняется долго и нудно, откуда тогда берется 27000 добавленных строк??? -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
||||
|
|||||
| Fally |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 17.8.2006 Где: Dahla Репутация: 3 Всего: 4 |
код полностью рабочий, вся проблема в том, что он предназначен для РНР5, а у вас по всей видимости стоит РНР4. Поэтому и сообщение об ошибке...
Вот тоже самое для РНР4.
Это сообщение отредактировал(а) Fally - 24.4.2007, 19:51 |
|||
|
||||
| Glip |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
можно для отладки вместо записи в базу сделать echo сформированого запроса и состояний счетчиков. Добавлено @ 20:22
кажися что-то не то с областью видимости $i может быть где-то объявляется как глобальная? или как там оно по умолчанию? в общем я бы последил за состоянием счетчиков i и j сначала на малых значениях Это сообщение отредактировал(а) Glip - 24.4.2007, 20:27 |
||||
|
|||||
| Sunvas |
|
||||||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Fally, ща попробую заюзать. Хм. протестил - работает. О результатах скорее всего сообщу завтра т.к. устал уже.
Добавлено через 11 минут и 32 секунды
Запись в базу делается оочень быстро. А еcho уже пробовал: на малых значениях (до 20-ти) на экран все классно выводиться. Самое забавное то, что в базу все добавляется правильно т.е. парсер работает правильно. Вот только пройдясь по этим 27000 строк, замел что значения повторяються, причем как-то странно (нет законормерности повторения).
Я использую всего два файла. Первый - это парсер, второй - работа с базой. Больше ничего не подключаю и ни от кого не завишу.
На малых значениях все классно. ЗЫ. Если кого-то очень заинтересовала моя проблемма и хочется узнать детали - стучите в асю 854984. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
||||||
|
|||||||
| Fally |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 17.8.2006 Где: Dahla Репутация: 3 Всего: 4 |
А итераций по i более 25 допускается?? Если нет, то советую всё-таки сделать запрос так, как я выше посоветовал:
Почему так лучше, я пояснил выше... Это сообщение отредактировал(а) Fally - 25.4.2007, 15:43 |
|||
|
||||
| Fally |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 17.8.2006 Где: Dahla Репутация: 3 Всего: 4 |
У меня есть кое-какие соображения по поводу вашей проблемы:
1) в функции getdescription($url) встречается последовательность $result[]=$out[1]; и т.д.... Самое интересное, что в функции getlink($url) используется та же самая последовательность и вообще они очень схожи. Так вот у меня ощущение, что параметры этих функций пересекаются, но такое возможно только если они объявлены в вызывающем скрипте как глобальные.. но возможно ошибаюсь... 2) Вы уверены в корректности написанных вами регулярных выражений? 3) А почему цикл for идёт до количества элементов в out[1]? |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Скрипт вызывается при помощи строки в браузере и кнопки Enter. Я уже где-то это писал. Абсолютно. Я проверял на малых значениях. К тому же не думаю, что это может быть причиной в 27000 строк. А я не знаю сколько картинок будет в тексте. Вот сейчас подумал. Все страницы парсеного сайта не обрабатываються. Может браузер просто несколько раз подряд вызывает мой скрипт? -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| Fally |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 17.8.2006 Где: Dahla Репутация: 3 Всего: 4 |
Несколько раз - навряд ли, может ошибка где-то в логике скрипта, и тот не смотрит ссылки, а постоянно просматривает одну и ту же страницу?
И ещё:
у меня вот тут возник вопрос... а где гарантия что в $out[] будет всего 3 элемента?? Это сообщение отредактировал(а) Fally - 26.4.2007, 18:37 |
|||
|
||||
| capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: 9 Всего: 13 |
А почему когда работаешь с curl, не завершаешь сеанс и не освобождаешь ресурсы?
http://www.php.net/manual/ru/function.curl-close.php Возможно в этом и ошибка. Ресурсы не обнулил, там всё и скапливается. Это сообщение отредактировал(а) capitan - 26.4.2007, 18:38 |
|||
|
||||
| Sunvas |
|
||||||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
А где это надо прописать? У меня два места, где я это использую. Провел еще тест счетчиком вот такого вида:
Теперь самое смешное. В результате в таблице записи:
Почему в таблицу два раза добавляються значения с одним и тем же $num, если следовательно коду такое невозможно?! Это сообщение отредактировал(а) Sunvas - 27.4.2007, 12:15 -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
||||||
|
|||||||
| capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: 9 Всего: 13 |
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |