2012-04-30 2 views
2

Почему я получаю эту ошибку, даже если каталог существует? он отлично работает, если я нацелен на родительский каталог, я попытался использовать% 20 ​​вместо пространства тоже, и попытался удалить последнее /, но ничего не работает!PHP opendir issue

Предупреждение: opendir (/ дом/хххх/user_files/пользователей/хххх/каталог тест /) [function.opendir]: не удалось открыть не реж: Нет такого файла или каталога в /дома/хххх/public_html/бета/stream._pages/file._list._i.php на линии 54

(Примечание: хххх только мне цензуру имен пользователей)

+0

Похоже, что существует проблема с пробелами в имени каталога. Как я могу это сделать ** ДОПУСКАТЬ ** использование пробелов? –

+0

Я думаю, что вам не хватает public_html в вашем URL-адресе. –

+0

/home/xxxx/user_files/users/xxxx/test directory/не кажется правильным путем ко мне. –

ответ

0

сделать файл под названием test.php и поместите его в тестовый каталог. В этом файле, поместите этот код:

<? echo dirname(__FILE__);?> 

Затем тест визит каталог/test.php в вашем веб-браузере, скопируйте и вставьте этот путь, как указано в test.php и попытаться использовать этот точный путь в opendir.

Другой проблемой может быть то, что права доступа к директории не верно, попробуйте chmodding 777

+0

Да, это пришло мне в голову, но папка не находится под public_html. возможно, он мог бы это сделать через CLI ssh + php. –

+0

или файловый менеджер хоста. –

+0

Да ... Я не могу получить к нему доступ через браузер, чтобы сделать это. Какую команду было бы выполнить с помощью SSH? –

0

Для тех, кто пытается найти папку вне папки public_html.

Этот код предоставляется php.net для функции opendir():

if ($handle = opendir('../../../../')) 
{ 
    echo "Directory handle: $handle\n"; 
    echo "Entries:\n"; 

    /* This is the correct way to loop over the directory. */ 
    while (false !== ($entry = readdir($handle))) 
    { 
     echo "$entry\n"; 
    } 

    /* This is the WRONG way to loop over the directory. */ 
    while ($entry = readdir($handle)) 
    { 
     echo "$entry\n"; 
    } 

    closedir($handle); 
} 

Решение

$handle я начал проверять, как далеко я мог вернуться с '../' добавив столько ../насколько возможно, пока вы не окажетесь в папке, в которой вы нуждаетесь. Оттуда вы берете, я думаю.

Для меня '../../../../' было достаточно, чтобы попасть туда, на каждом сервере все по-другому.

Смежные вопросы