使用PHP列出目录中的所有图像

Dre*_*din 12 php image

我有下面的代码列出文件夹中的所有图像,问题是它找到了一些文件(a.和...),我不知道它们是什么,所以我不知道如何防止它们出现.我在Windows XP机器上,任何帮助都会很棒,谢谢.

错误:警告:重命名(images /.,images /.)[function.rename]:第14行的C:\ wamp\www\Testing\listPhotosA.php没有错误

警告:重命名(images/..,images/..)[function.rename]:第14行的C:\ wamp\www\Testing\listPhotosA.php没有错误

码:

<?php
define('IMAGEPATH', 'images/');

if (is_dir(IMAGEPATH)){
    $handle = opendir(IMAGEPATH);
}
else{
    echo 'No image directory';
}

$directoryfiles = array();
while (($file = readdir($handle)) !== false) {
    $newfile = str_replace(' ', '_', $file);
    rename(IMAGEPATH . $file, IMAGEPATH . $newfile);
    $directoryfiles[] = $newfile;
}

foreach($directoryfiles as $directoryfile){
    if(strlen($directoryfile) > 3){
    echo '<img src="' . IMAGEPATH . $directoryfile . '" alt="' . $directoryfile . '" /> <br>';
    }
}

closedir($handle); ?>
Run Code Online (Sandbox Code Playgroud)

Roc*_*mat 23

我喜欢PHP的glob功能.

foreach(glob(IMAGEPATH.'*') as $filename){
    echo basename($filename) . "\n";
}
Run Code Online (Sandbox Code Playgroud)


nod*_*dws 7

glob()区分大小写,通配符*将返回所有文件,所以我在这里指定了扩展名,所以你不必进行过滤工作

$d = 'path/to/images/';
foreach(glob($d.'*.{jpg,JPG,jpeg,JPEG,png,PNG}',GLOB_BRACE) as $file){
    $imag[] =  basename($file);
}
Run Code Online (Sandbox Code Playgroud)


Nat*_*ivi 6

使用 glob 函数。

<?php
define('IMAGEPATH', 'images/');
foreach(glob(IMAGEPATH.'*') as $filename){
    $imag[] =  basename($filename);
}
print_r($imag);
?>
Run Code Online (Sandbox Code Playgroud)

你得到了数组格式的所有图像