Вопрос № 47251: Знаю, что вопрос уже был и не раз, но не смог найти, не знаю что в поиске написать...
В общем мне нужен алгоритм перебора файлов (получения имен и путей) в папках неограниченной вложенности. Просто в папке я
еще могу перебрать файлы, а как сделат...Вопрос № 47257: Здравствуйте!
Можно ли как нибудь узнать ip адрес того, кто обращается к странице.
У меня просто записывается в БД время посещения и IP.
надеюсь вопрос понятен...
Вопрос № 47.251
Знаю, что вопрос уже был и не раз, но не смог найти, не знаю что в поиске написать...
В общем мне нужен алгоритм перебора файлов (получения имен и путей) в папках неограниченной вложенности. Просто в папке я
еще могу перебрать файлы, а как сделать со вложением не понимаю.
Приму любую полезную информацию.
Отвечает: Алексей Смуриков
Здравствуйте, Алексеенко Станислав Юрьевич!
Чтобы перебирать подкаталоги нужно просто использовать рекурсную функцию, т.е. допустип у вас есть функция с параметром каталога,
а в ней при нахождении подкаталога функция вызывает сама себя с уже переданным полным путём подкаталога и т.д. В результате
будут обработаны все подкаталоги.
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"); --------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Константин
Здравствуйте, 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