0

を読んでscandir()、何かを表示するのに問題があります。

<?php
    $dir = 'http://www.universaldynamicmedia.com/sandbox/Images';
    $array = scandir($dir);
    foreach($array as $key => $value)
        {
            echo '<li><img src="' . $dir . $value . '" /></li>';
        }
?>

私はディレクトリで何かを正しくしていないと思っていscandir()ました.

ディレクトリのパーミッションは問題を引き起こしますか?

4

2 に答える 2

3

** URL は使用できないことに注意してください。フォルダー/ファイルへのアクセス権が必要です。

scandir():

$dir = "PATH_TO_DIRECTORY";
$exclude = array( ".","..","error_log","_notes" );
if (is_dir($dir)) {
    $files = scandir($dir);
    foreach($files as $file){
        if(!in_array($file,$exclude)){
            echo '<li><img src="' . $dir . $file . '" /></li>';
        }
    }
}

readdir():

$dir = "PATH_TO_DIRECTORY";
$exclude = array( ".","..","error_log","_notes" );
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if(!in_array($file,$exclude))
                 echo '<li><img src="' . $dir . $file . '" /></li>';
        }
        closedir($dh);
    }
}?>
于 2012-11-30T18:09:05.033 に答える
2

scandir()ローカルファイルシステムでのみ機能するため、次のように変更する必要があります。

$dir = '/path/to/document/root/sandbox/Images';
于 2012-11-30T18:07:30.150 に答える