Php 如何获取目录中的文件并将其保存在数组中?
从这个问题来看,我在一个目录中存储了不同的文件。现在我想获取.jpg文件并将其放入一个数组中,以便根据时间对数组进行排序并显示图像。我想得到文件名如下的jpeg文件 (日期在此)-img_gen.jpg。 即。 20131027123001-img-gen.jpg 20131030123102-img-gen.jpg 如何在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
$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;
});