Каков правильный формат пути к каталогу при использовании PHP opendir ()?

У меня проблемы с моим путем к файлу при использовании opendir(). Я получаю следующее предупреждение:

Предупреждение PHP: opendir (/ uploads / users / 405 / images / profile / profilepic /) [function.opendir]: не удалось открыть каталог: нет такого файла или каталога в /home/my_folder/public_html/models/photos.php on line 1059

строка 1059 в photos.php имеет следующее:

if ( ( $handle = opendir( $profile_pic_path ) ) ) { // do stuff }

где:

$profile_pic_path = '/uploads/users/405/images/profile/profilepic/';

Я пробовал несколько разных вещей, но не могу заставить его работать (я продолжаю получать предупреждение PHP в моем журнале ошибок).

Что я делаю неправильно?


person Aaron Brokmeier    schedule 04.11.2012    source источник
comment
Этот каталог действительно существует? Каталог с именем uploads в корне файловой системы был бы довольно странным для большинства систем.   -  person John Flatness    schedule 04.11.2012
comment
Формат правильный. Вы уверены, что папка загрузок находится в корневом каталоге   -  person Mats Rietdijk    schedule 04.11.2012
comment
Да, uploads находится в public_html.   -  person Aaron Brokmeier    schedule 04.11.2012


Ответы (1)


/ в начале пути означает - абсолютный путь.

вы должны использовать абсолютный или относительный путь:

$profile_pic_path = dirname(__FILE__).'/uploads/users/405/images/profile/profilepic/';

or

$profile_pic_path = 'uploads/users/405/images/profile/profilepic/';

это работает, если ваш скрипт находится в том же каталоге, что и каталог загрузок.

в случае, если ваш скрипт находится в подкаталоге (например, lib / tests / test.php), и у вас нет инициализированного глобального $ basepath:

$profile_pic_path = dirname(dirname(dirname(__FILE__)))
                    .'/uploads/users/405/images/profile/profilepic/';

часто где-то в верхней части логики используется глобальная или постоянная основа (скажем, в config / main.php):

global $basedir=dirname(dirname((__FILE__));
person zb'    schedule 04.11.2012