检索目录的 alla jpg 文件列表


Retrieve the list of alla jpg file of a directory

可能的重复项:
查找具有任何扩展名的特定名称的文件

我有这个代码,用于将包含在目录中的所有文件放入数组中

$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,则将该项添加到新数组中。希望你能理解。.