Php 如何获取目录中的文件并将其保存在数组中?

Php 如何获取目录中的文件并将其保存在数组中?,php,arrays,image,Php,Arrays,Image,从这个问题来看,我在一个目录中存储了不同的文件。现在我想获取.jpg文件并将其放入一个数组中,以便根据时间对数组进行排序并显示图像。我想得到文件名如下的jpeg文件 (日期在此)-img_gen.jpg。 即。 20131027123001-img-gen.jpg 20131030123102-img-gen.jpg 如何在PHP中实现这一点?有人能帮我找到正确的分步代码吗 我有这个代码,但它不适合我 $ignore = array("..","."); $dir = opendir("/hom

从这个问题来看,我在一个目录中存储了不同的文件。现在我想获取.jpg文件并将其放入一个数组中,以便根据时间对数组进行排序并显示图像。我想得到文件名如下的jpeg文件

(日期在此)-img_gen.jpg。 即。 20131027123001-img-gen.jpg 20131030123102-img-gen.jpg

如何在PHP中实现这一点?有人能帮我找到正确的分步代码吗

我有这个代码,但它不适合我

$ignore = array("..",".");
$dir = opendir("/home3/site/public_html/Master/uploader/uploader/");
$images = array();
$sortedimages = array();

//List files in images directory
while (($file = readdir($dir)) !== false)
    if (!in_array($file, $ignore))
        $images[] = $file;

foreach ($images as $image) {
    $filetime = filemtime("uploader/$image");
    $sortedimages[] = $filetime;
}

krsort($sortedimages);

foreach ($sortedimages as $sorted) {
    echo "$sorted<br/>";
}

closedir($dir);
$ignore=array(“…”,“);
$dir=opendir(“/home3/site/public_html/Master/uploader/uploader/”);
$images=array();
$sortedimages=array();
//列出图像目录中的文件
while(($file=readdir($dir))!==false)
如果(!in_数组($file,$ignore))
$images[]=$file;
foreach($images作为$image){
$filetime=filemtime(“上传器/$image”);
$sortedimages[]=$filetime;
}
krsort($Dimages);
foreach($sorteddimages as$sorted){
回显“$sorted
”; } closedir($dir);
它只是给我一个网关超时。所以我想我真的需要一些比这更好的工作代码

请随意编辑我的代码或给我一些代码。提前感谢:)

使用和:

$dir='./';
$files=glob($dir.'*.jpg');
usort($files,function($file1,$file2)use($dir){
$f1=filemtime($dir.$file1);
$f2=filemtime($dir.$file2);
如果($f1=$f2){
返回0;
}
回报率($f1<$f2)?-1:1;
});

使用
glob()
将使它变得更容易@谢谢你的回答:)你能给我一些关于如何使用glob()的示例代码吗?谢谢again@ExpertSyStem谢谢你编辑我的代码。我试过了,但它返回了错误504网关超时。你认为这里有什么问题?thanks@JbenKaye如果您还没有尝试过,请尝试我的代码。它能用吗?@JbenKaye:我没有编辑你的代码(从某种意义上说,我改变了任何东西,使它能用)。任何人都不应该这样做(他们应该发布答案)。我只是改进了它的格式,这样人们可以更容易地阅读它并发现可能的问题。ComFreek似乎知道它在说什么,所以试试它的建议,如果有任何问题(如果有的话)就报告回来。谢谢@ComFreek。我试过了,但它没有显示任何我制作的$dir='./upload/';你认为我们还能用这个做什么?谢谢,againI尝试了您的代码,但它没有显示任何内容。我也尝试过像$dir='./uploader/upload';和$dir='/home3/site/public_html/Master/uploader/upload';但还是什么都没展示?我做错了什么?希望你能帮助我。thanks@JbenKaye为什么我的代码要显示任何东西?它不使用
echo
print
。它只是为您准备一个文件名排序数组。在我的代码片段之后,用
$files
做任何你想做的事。现在我意识到了。谢谢我如何测试它是否正确?我试图回显$文件,但它打印“数组”。谢谢此外,如何仅对名称为20131030123102-img-gen.jpg的文件进行排序?非常感谢。again@JbenKaye尝试
var\u dump($files)
,它将转储所有条目。您是否只想要具有这种文件名模式的文件?
$dir = './';
$files = glob($dir . '*.jpg');

usort($files, function ($file1, $file2) use ($dir) {
  $f1 = filemtime($dir . $file1);
  $f2 = filemtime($dir . $file2);

  if ($f1 == $f2) {
    return 0;
  }
  return ($f1 < $f2) ? -1 : 1;
});