RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 385
от 30.06.2006, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 311, Экспертов: 42
В номере:Вопросов: 2, Ответов: 7


Вопрос № 47251: Знаю, что вопрос уже был и не раз, но не смог найти, не знаю что в поиске написать... В общем мне нужен алгоритм перебора файлов (получения имен и путей) в папках неограниченной вложенности. Просто в папке я еще могу перебрать файлы, а как сделат...
Вопрос № 47257: Здравствуйте! Можно ли как нибудь узнать ip адрес того, кто обращается к странице. У меня просто записывается в БД время посещения и IP. надеюсь вопрос понятен...

Вопрос № 47.251
Знаю, что вопрос уже был и не раз, но не смог найти, не знаю что в поиске написать...
В общем мне нужен алгоритм перебора файлов (получения имен и путей) в папках неограниченной вложенности. Просто в папке я еще могу перебрать файлы, а как сделать со вложением не понимаю.
Приму любую полезную информацию.

Заранее спасибо, оценок плохих не ставлю.
Отправлен: 25.06.2006, 10:21
Вопрос задал: Алексеенко Станислав Юрьевич (статус: 5-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Алексей Смуриков
Здравствуйте, Алексеенко Станислав Юрьевич!
Чтобы перебирать подкаталоги нужно просто использовать рекурсную функцию, т.е. допустип у вас есть функция с параметром каталога, а в ней при нахождении подкаталога функция вызывает сама себя с уже переданным полным путём подкаталога и т.д. В результате будут обработаны все подкаталоги.
p.s. Если не понятно пишите в аську или на мыло...
---------
Speccy Rulezz!!!
Ответ отправил: Алексей Смуриков (статус: Практикант)
Ответ отправлен: 25.06.2006, 10:40
Оценка за ответ: 5

Отвечает: Mamont
Здравствуйте, Алексеенко Станислав Юрьевич!
Используя функцию, которая перебирает файлы в заданном каталоге и при обнаружении другого каталога вызываает сама себя с обнаруженным каталогом - получаем рекурсивную функцию (т.е. вызывает сама себя). Пример см. Вариант 1.
Но тут к сожалению всетаки есть ограничение по количеству вложений (вызовов самой себя), поэтому при большом количестве вложенности папок можем получить крах PHP (думаю вложенность около 30 прокатит без проблем, а если мало смотрим 2 вариант).
Можно создать массив, содержащий названия папок для обработки. При пролистывании одной папки и нахождении новой просто добавляем новую запись в этот массив. см. Вариант 2.

Приложение:

---------
Иногда движение вперед-результат пинка под зад

Ответ отправил: Mamont (статус: 2-ой класс)
Ответ отправлен: 25.06.2006, 12:09
Оценка за ответ: 5

Отвечает: Константин
Здравствуйте, Алексеенко Станислав Юрьевич!
Во вложении - мой класс FileSystem. Именно такой задачи как у тебя, там не решено. Но есть рекурсивное удаление и просто просмотр директории. Думаю, сможешь слепить то что надо.
Ошибки обрабатываются другим классом, так что на это не смотри.

Приложение:

---------
Лучше сделать и жалеть, чем жалеть о том что не сделал

Ответ отправил: Константин (статус: 6-ой класс)
Ответ отправлен: 25.06.2006, 15:21
Оценка за ответ: 5


Вопрос № 47.257
Здравствуйте!
Можно ли как нибудь узнать ip адрес того, кто обращается к странице.
У меня просто записывается в БД время посещения и IP.
надеюсь вопрос понятен
Отправлен: 25.06.2006, 11:46
Вопрос задал: Toxic~Fire (статус: 2-ой класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Toxic~Fire!
Конечно можно: $ip = getenv("REMOTE_ADDR");
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 25.06.2006, 11:53

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Toxic~Fire!

Можно и так: $ip = $_SERVER["REMOTE_ADDR"];

Удачи!
---------
Ответы на все вопросы - на сайте www.ya.ru
Ответ отправил: Устинов Сергей Евгеньевич (статус: Студент)
Ответ отправлен: 25.06.2006, 12:00

Отвечает: Константин
Здравствуйте, Toxic~Fire!
Время лучше писать в timestamp, time()
IP - $_SERVER['REMOTE_ADDR'];
---------
Лучше сделать и жалеть, чем жалеть о том что не сделал
Ответ отправил: Константин (статус: 6-ой класс)
Ответ отправлен: 25.06.2006, 15:24

Отвечает: Cybernetic_Creature
Здравствуйте, Toxic~Fire!
$_SERVER["REMOTE_ADDR"] глобальный ИП адресс
$_SERVER["HTTP_X_FORWARDED_FOR"] локальный адресс (IP в локальной сети пользователя)
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 26.06.2006, 15:20


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное