|
|
|
|
|
для: cheops
(21.10.2005 в 13:44)
| | Все понятно!
Огромное спасибо за внимание и помощь в решении данной проблемы!
Все работает отлично и только благодаря Вам!
Cheops вы СУПЕР, как ПРОГРАММИСТ и ЧЕЛОВЕК!
З.Ы.: Вам бы надо на сайте книгу отзывов сделать, для тех кому вы помогли.
Типа: Сайт->Проблема->Решение->Отзыв
Пусть народ знает своих героев :))) | |
|
|
|
|
|
|
|
для: kran
(21.10.2005 в 13:33)
| | 1) Нет для работы с заголовками, которые получают сокеты специальных функций нет... в PHP используются только специфические функции, вроде setcookie(), session_start(), header()... | |
|
|
|
|
|
|
|
для: cheops
(21.10.2005 в 13:07)
| | 1) Вот именно так я и делаю, один в один :))) Просто мне думалось что для работы с заголовками должны быть специальные функции, вот например откопал getallheaders(), но она кажется не совсем подходит, может еще что есть?
2) Вроде бы проблема решена, по крайней мере 3 раза в цикле прогнал через скрипт 1000 url и не одного зависания! Сделал следующее: уменьшил время соединения до 10 и в конце цикла все используемые переменные добавил в unset(), там раньше были только переменные вида $var. , но на этот раз я туда добавил абсолютно всё!
Как выяснилось при отсутствии значения какой-нибудь переменной, она не уничтожалась, а передавалась с этим же значением в очередное вхождение в цикл, и тем самым вызывая сбой! | |
|
|
|
|
|
|
|
для: kran
(20.10.2005 в 23:50)
| | 1) Так а вы их просто в массив помещайте, а тело документа отдельно грузите... тогда вы сможете просматривать массив в цикле, только каждый раз после использования уничтожайте массив при помощи unset() иначе у вас будут старые заголовки в него просачиваться...
2) Ну при такой скорости можно и меньше - если сервер не отзывается за такое время при таком канале, он скорее всего не рабочий... | |
|
|
|
|
|
|
|
для: cheops
(20.10.2005 в 22:39)
| | 1) Ну примерно так! Т.е. если код ошибки имеет постоянное место в массиве, то остальные заголовки выводятся, что называется - "как придется". По крайней мере просмотрев около 500 записей никакой закономерности я не обнаружил! Вот если бы массив можно было бы вернуть, скажем ассоциативным, тогда было бы другое дело!
Можно конечно весь массив перебрать и сравнить по шаблонам интересующие значения, но может быть есть какой-нибудь другой способ, более рациональный и удобный!
2) Cоединение 256 Kb.
Думаете, что надо именно уменьшить время ожидания?
Попробую, думаю 10 должно вполне хватить! | |
|
|
|
|
|
|
|
для: kran
(20.10.2005 в 21:42)
| | 1) Не очень понятно, т.е. нужно просто вытащить содержимое заголовков Location и Charset?
2) Хм... а соединение быстрое? Попробуйте уменьшить ожидание сокета с 30 секунд на меньшее (последний параметр fsockopen()) | |
|
|
|
|
|
|
|
для: cheops
(20.10.2005 в 21:28)
| | 1) Про первую строку я понял, это легко. Значение кода будет всегда в массиве с индексом =0. А как выцепить остальные заголовки Location и Charset, если не циклом с проверкой?
2) У меня вывставлено ограничение выполнения скрипта на сутки, можно сказать на бесконечное время :)) Сервер стоит дома, ограничений никаких на нем нет, соединение с интернет постоянное. Почему виснет, незнаю?
Когда вместо сокетов использовал file_get_contents(), такого не было! Может в этом дело? | |
|
|
|
|
|
|
|
для: kran
(20.10.2005 в 19:21)
| | 1) код идёт первой строкой - её нужно всегда смотреть, если код 200 - обрабатывать дальнейший поток как страницу, если код 301 или 302 - смотреть новый URL и грузить страницу от туда.
2) Ограничение по времени снято? У вас фигурирует 10 минут
<?php
set_time_limit(600);
?>
|
снимите вообще ограничения
<?php
set_time_limit(0); // бесконечное время
?>
|
| |
|
|
|
|
|
|
|
для: napTu3aH
(20.10.2005 в 20:00)
| | >Вам скорее всего нужна функция urldecode, вот темы в
>которых это подробнее обсуждается
>http://softtime.ru/forum/read.php?id_forum=1&id_theme=8172&page=1
>http://softtime.ru/forum/read.php?id_forum=1&id_theme=7442&page=1
Спасибо, но меня интересует немного другое :))) , например http-заголовки и работа с ними!
А этот пример я просто так привел, как продукт тестирования обсуждаемого скрипта, эта функция скорее админам этих сайтов пригодится :))
Конечно если такие сайты есть, то придется написать для них отдельное правило их обработки :) | |
|
|
|
|
|