Здравствуйте!
Вопрос по работе функции is_dir().
Пытаюсь приспособить её для идентификации обьектов, находящихся в каталоге по приципу каталог/файл. Но наверное что то не так делаю. Дело в том, что корректно опознаются папки/файлы только для содержимого папки в которой находится сценарий или для вложенных в данную папку папок, находящихся выше. В отстальных случаях, функция возвращает false. Данные для is_dir() берутся при помощи функции readdir() (ещё пробовал со scandir() ). Как работает - читал на данном сайте.
На чем крутится сценарий:
FreeBSD 4.x.
Apache 1.3.20rusPL30;
PHP 4.x.
Подскажите пожалуйста, чего именно я в этой жизни не понимаю
Заранее спасибо
1. i_d_d_q_d - 17 Мая, 2007 - 13:04:15 - перейти к сообщению
2. UserID - 17 Мая, 2007 - 13:28:59 - перейти к сообщению
i_d_d_q_d пишет:
Здравствуйте!
Вопрос по работе функции is_dir().
Пытаюсь приспособить её для идентификации обьектов, находящихся в каталоге по приципу каталог/файл. Но наверное что то не так делаю. Дело в том, что корректно опознаются папки/файлы только для содержимого папки в которой находится сценарий или для вложенных в данную папку папок, находящихся выше. В отстальных случаях, функция возвращает false. Данные для is_dir() берутся при помощи функции readdir() (ещё пробовал со scandir() ). Как работает - читал на данном сайте.
На чем крутится сценарий:
FreeBSD 4.x.
Apache 1.3.20rusPL30;
PHP 4.x.
Подскажите пожалуйста, чего именно я в этой жизни не понимаю
Заранее спасибо
Вопрос по работе функции is_dir().
Пытаюсь приспособить её для идентификации обьектов, находящихся в каталоге по приципу каталог/файл. Но наверное что то не так делаю. Дело в том, что корректно опознаются папки/файлы только для содержимого папки в которой находится сценарий или для вложенных в данную папку папок, находящихся выше. В отстальных случаях, функция возвращает false. Данные для is_dir() берутся при помощи функции readdir() (ещё пробовал со scandir() ). Как работает - читал на данном сайте.
На чем крутится сценарий:
FreeBSD 4.x.
Apache 1.3.20rusPL30;
PHP 4.x.
Подскажите пожалуйста, чего именно я в этой жизни не понимаю
Заранее спасибо
Если ты переходишь во вложенный каталог, то нужно дополнить полнуть путь в качестве параметра функции. Т.е. если путь "./path_1/", ты заходишь в него, то проверку внутри этой папки нужно производить с учётом "./path_1/", т.е. "./path_1/path_2/path_3/"
3. i_d_d_q_d - 17 Мая, 2007 - 14:08:28 - перейти к сообщению
Каталог задаю следующим образом:
/pub/home/path/каталог_с_www_док ументами/path_1/
При этом, если сценарий лежит в каталоге path_1
то относительно
/pub/home/path/каталог_с_www_док ументами/path_1/
всё работает (аналогично: /pub/home/path/каталог_с_www_док ументами/path_1/path_1_1 ;
/pub/home/path/каталог_с_www_док ументами/path_1/path_1_1/path_1_ 2 и тд. всё нормально)
Если же сценарий лежит по адресу:
/pub/home/path/каталог_с_www_док ументами/path_1
а требуется получить данные о б обьектах в папках
/pub/home/path/каталог_с_www_док ументами/path_2/
/pub/home/path/каталог_с_www_документами/path_3/
и тд
или
/pub/home/path/каталог_с_www_док ументами/ (те. вообще в корне) ничего не работает, те функция относительно любых обьектов находящихся в папке говорит false (если true - значит обьект - папка)
/pub/home/path/каталог_с_www_док ументами/path_1/
При этом, если сценарий лежит в каталоге path_1
то относительно
/pub/home/path/каталог_с_www_док ументами/path_1/
всё работает (аналогично: /pub/home/path/каталог_с_www_док ументами/path_1/path_1_1 ;
/pub/home/path/каталог_с_www_док ументами/path_1/path_1_1/path_1_ 2 и тд. всё нормально)
Если же сценарий лежит по адресу:
/pub/home/path/каталог_с_www_док ументами/path_1
а требуется получить данные о б обьектах в папках
/pub/home/path/каталог_с_www_док ументами/path_2/
/pub/home/path/каталог_с_www_документами/path_3/
и тд
или
/pub/home/path/каталог_с_www_док ументами/ (те. вообще в корне) ничего не работает, те функция относительно любых обьектов находящихся в папке говорит false (если true - значит обьект - папка)
4. evgenijj - 17 Мая, 2007 - 16:04:02 - перейти к сообщению
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- // переходим в директорию dir1 (опускаемся на один уровень вниз)
- echo "<table>\\n";
- {
- echo "<tr>\\n";
- echo "</tr>\\n";
- }
- echo "</table>\\n";
- // Возвращаемся в директорию скрипта (поднимаемся на один уровень вверх)
- echo "-------------------------------------------------------< br/>\\n";
- // переходим в директорию dir2 (опускаемся на один уровень вниз)
- echo "<table>\\n";
- {
- echo "<tr>n";
- echo "</tr>\\n";
- }
- echo "</table>\\n";
- // Возвращаемся в директорию скрипта (поднимаемся на один уровень вверх)
- echo "-------------------------------------------------------< br/>\\n";
- echo "<table>\\n";
- {
- echo "<tr>\\n";
- echo "</tr>\\n";
- }
- echo "</table>\\n";
- ?>
Результат работы:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- . Каталог
- .. Каталог
- admin.php 221
- clear.php 101
- code.php 362
- config.php 1370
- csv.php 438
- tests Каталог
- zip Каталог
- -------------------------------------------------------
- . Каталог
- .. Каталог
- banners Каталог
- dump Каталог
- offer Каталог
- search.php 7808
- shop.php 72952
- switch.php 432
- -------------------------------------------------------
- . Каталог
- .. Каталог
- dir1 Каталог
- dir2 Каталог