我有下面的代码列出文件夹中的所有图像,问题是它找到了一些文件(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)
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)
使用 glob 函数。
<?php
define('IMAGEPATH', 'images/');
foreach(glob(IMAGEPATH.'*') as $filename){
$imag[] = basename($filename);
}
print_r($imag);
?>
Run Code Online (Sandbox Code Playgroud)
你得到了数组格式的所有图像