1

PHPを介してディレクトリ内のすべてのファイルをリストする簡単な方法に取り組んでいます。これを行うphp.netから直接コードを持っていますが、シンボリックリンクへのアクセスに問題があるようです。(ディレクトリへの) シンボリック リンクにアクセスしようとすると、getcwd() は元の作業ディレクトリを表示します。

index1.php はこのためのファイルです。私はアーチLinuxで実行しています。

ls -lhディレクトリの。パーミッションは適切に見えますか?

[drake@unimatrix434 .hiddenVideo]$ pwd
/home/drake/public_html/.hiddenVideo
[drake@unimatrix434 .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

アイデアや提案はありますか?私はこれがうまくいくと思っていたでしょう...

4

1 に答える 1

0

readlink()を試してみてください 。リンクをディレクトリに変換できるはずです... is_link()を使用して、実際に 1 つかどうかを確認します =)

于 2012-11-14T01:53:29.653 に答える