2012-11-14 2 views
1

Я работаю над простым способом перечисления всех файлов в каталоге через php. У меня есть code прямо из php.net, который делает это, но у меня, похоже, есть проблемы с доступом к символическим ссылкам. Когда я пытаюсь получить доступ к символической ссылке (в каталог), getcwd() отобразит исходный рабочий каталог.PHP Символическая ссылка в пути

index1.php является файлом для этого. Я работаю на arch linux.

ls -lh каталога. прав доступа, по-видимому, в порядке?

[[email protected] .hiddenVideo]$ pwd 
/home/drake/public_html/.hiddenVideo 
[[email protected] .hiddenVideo]$ ls -lh 
total 224K 
-rw-r--r-- 1 drake users 921 Nov 13 20:17 index1.php 
-rwxr-xr-x 1 drake users 213K Nov 13 15:19 index.php 
drwxr-xr-x 2 drake users 4.0K Nov 13 20:05 testDIR 
lrwxrwxrwx 1 drake users 26 Nov 13 14:10 Video -> /media/storage_pool/Video/ 

PHP код секции:

<?php 
    echo "<div>" . getcwd() . "</div>"; 
    chdir('Video'); 
    echo "<div>" . getcwd() . "</div>"; 

    echo "</br>"; 

    //list files 
    if ($handle = opendir('.')) { 
     echo "<div>Directory handle: $handle</div>"; 
     echo "<div>Entries:</div>"; 

     while (false !== ($entry = readdir($handle))) { 
      echo "<div>$entry</div>"; 
     } 
     closedir($handle); 
    } 
?> 

Что дает:

/home/drake/public_html/.hiddenVideo 
/home/drake/public_html/.hiddenVideo 

Directory handle: Resource id #3 
Entries: 
.. 
index.php 
. 
Video 
index1.php 
testDIR 

Кто-нибудь есть какие-либо идеи или предложения? Я бы подумал, что это будет работать ...

ответ

0

Попробуйте с readlink() Вы должны быть в состоянии преобразовать ссылку в директорию ... и использовать is_link(), чтобы проверить, является ли это на самом деле один =)

+0

Я просто увидел ваш chdir («Видео»); Позвольте мне изменить свой ответ = P – Manatax

+0

странно, видео не распознается как ссылка ... – Drake

+0

Убедитесь, что вы используете ПОЛНУЮ ПУТЬ – Manatax

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