可能的重复项:
查找具有任何扩展名的特定名称的文件
我有这个代码,用于将包含在目录中的所有文件放入数组中
$directory = "./";
$ourDirList = scandir($directory);
$arraylistafiles=array();
foreach($ourDirList as $ourItem)
{
if (is_file($ourDir . $ourItem))
{$arraylistafiles[]=$ourItem;}
}
但是,如果我只想放置扩展名为".jpg"的文件,我该怎么办?
使用 PHP 的glob()
可以避免is_file()
调用,因为glob
只会返回目录中实际存在的文件。在您的情况下,无需创建 UDF(用户定义函数(。
$dir = './';
foreach(glob($dir.'*.jpg') as $file) {
print $file . "'n";
}
更新
从您的评论中可以清楚地看出您不了解glob()
的工作原理。你可以像这样实现你想要做的事情:
$arraylistafiles = glob($dir.'*.jpg');
if(is_file($ourDir.$ourItem) && substr($ourItem,-4) == '.jpg') {
//
}
您可以使用波纹管功能。
public function getFileList($dirpath,$list_ignore,$list_allowed_ext)
{
$filelist = array();
if ($handle = opendir(dirname ($dirpath)))
{
while (false !== ($file = readdir($handle)))
{
if (!is_dir($file) && !in_array($file,$list_ignore) && in_array(strtolower(end(explode('.',$file))),$list_allowed_ext))
{
$filelist[] = $file;
}
}
closedir($handle);
}
return $filelist;
}
实现将是这样的。.
$fileTypes = array ("jpg");
$list_ignore = array ('.','..');
$fileList = getFileList("./",$list_ignore,$fileTypes);
干杯!
首先,您必须检查foreach数组中文件的文件扩展名。如果扩展名为 jpg,则将该项添加到新数组中。希望你能理解。.