![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
Oflashp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 2.8.2007 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 2 |
Вообщем написал FTP-индексатор, обходит все файлы и каталоги. Если файл - то происходит закачка контрольной суммы, последние 64кб из каждого файла или весь файл если весит меньше 64кб. Далее кодируется в мд5 и сливается в базу, для того, чтобы видеть повторные файлы. Столкнулся с проблемой, что большие фтп которые имеют очень большое дерево, индексируются не корректно. Скрипт застревает и пишет ошибку. Естественно при повторе он всё таки индексирует полностью или застревает на шаге открытия каталога или чтения файла.
Пробовал: 1)Выставлять интервал (была мысль, что команды слишком быстро летят на сервер) 2)Пробовал методом получения всех каталогов, а потом пошагово каждый каталог обходился 3)Пробовал менять размер закачиваемого куска. Ничего не помогает, бывает так, что скрипт застревает в самом начале и проблему найти не удаётся. Нашёл топики в интернете, возникали такие же проблемы и у других людей. Ищу решения, пробовал на PHP4. Так же ищу решения для другой проблемы, а именно работа с файлами больше 1024мб. При попытке закачать часть файла, то-есть последних 64кб, закачивается весь файл. Если DownloadMasterom ручками делаешь закачку с того же фтп, докачка делается. Заранее благодарю. |
|||
|
||||
Diesel Draft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
Индексатор писать на РНР немного жестоко
![]() А есть закономерность когда вылетает? И какого рода ошибки |
|||
|
||||
Oflashp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 2.8.2007 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 2 |
Закономерности нет.
Ошибки аля, не могу зайти в каталог или не могу открыть файл для закачки. Хотя при повторе читает. |
|||
|
||||
console |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: нет Всего: 3 |
||||
|
||||
Diesel Draft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 876 Регистрация: 18.1.2005 Где: Lviv, Ukraine Репутация: нет Всего: 5 |
Может проблема только на одном FTP, или это проблемы коннекта.
|
|||
|
||||
Oflashp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 2.8.2007 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 2 |
Пробовали на разных фтп и под разными ОС.
Функция Flush для того, чтобы при отладке видеть идёт скрипт или застрял снова, а вообще запускался cron'ом |
|||
|
||||
WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
О ужс. Я думаю никто не будет разбираться в таком огромном месиве кода.
Читайте правила - надо спрашивать только про неработающий участок. Попробуйте его локализовать. |
|||
|
||||
Oflashp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 2.8.2007 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: 2 |
Читайте топик внимательнее. Ошибки нет. Это видимо, что-то с функциями. Вот я и спрашиваю, что может быть. И если этот код большой, то я чайник. У меня обычно код меньше 3000 строк не бывает. Это тоже вырезка, рабочая. Это сообщение отредактировал(а) Oflashp - 20.8.2007, 15:19 |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: нет Всего: 146 |
Oflashp, вы не пробовали вызывать функцию ftp_rawlist() с 3им параметром, т.е. с рекурсивным вызовом? Так же посмотрите первый комментарий на php.net reg (russia, vladimir). Там решается аналогичная задача.
По второму вопросу, не могли бы вы привести тут часть кода, которая отвечает за чтение и запись в файл? |
|||
|
||||
LAVO |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 22.9.2007 Репутация: нет Всего: нет |
Oflashp, теперь на фтп выложено большое количество файлов, размер которых превосходит 2, 4 и даже 10 ГБ. Сохранить данные о таком размере файла в переменную PHP нельзя. Она поддерживает только положительные числа до 2 в 16 степени... т.е. может хранить информацию о размере файлов вплоть до 2 ГБ, но не более. Далее идет переход в отрицательные числа и после 4 ГБ - переполнение...
Это сообщение отредактировал(а) LAVO - 22.9.2007, 14:16 |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |