2011-11-06 57 views
0

这将从我的文件夹中获取图像。如果每个文件的上次修改日期小于或等于今天的日期,则echo图像

$dirname = "./uploaded_files/"; 
$images = scandir($dirname); 
$ignore = Array(".", ".."); 
foreach($images as $curimg){ 

if(!in_array($curimg, $ignore)) { 
}; 

这会获取文件夹中每个文件的最后修改日期。

$result = array(); 
$folder = ('uploaded_files/'); 
$handle = opendir($folder); 
foreach (glob("$folder/*") as $team){$sort[]= end(explode('/',$team));} 

制作包含在当前目录中的文件的数组:

while (false !==($file = readdir($handle))) 
{ 
if ($file != ".." && $file != ".") 
{ 
$file = "uploaded_files/".$file ; 
if (!is_dir($file)) 
$result[] = $file; 
} 
} 
closedir($handle); 

这是我的IF和每个语句(这里是我的问题)!

$lastmoddate = (date("Ymd", filemtime($file))); 
$todaysdate = (date("Ymd")); 

foreach ($result as $file){ 
if ($lastmoddate <= $todaysdate){ 
if (strpos($file, "+12:00") !==false){ 
echo "$file".",".date ("h:i d/m/Y", filemtime($file))."\r\n"."<br/>"; 

} 
} 
} 

什么,我试图做的是“如果文件名包含+12:00,如果每个文件的上次更改日期是当天的日期,然后回波图像小于或等于!但它不起作用。

任何人都可以帮我弄清楚如何重写我的声明!?

我刚开始学习PHP 任何人都可以帮忙!

由于

回答

0

通过使用日期()函数,要转换的整数日期为人类可读的日期。在这样做的时候,你将不能再比较日期(以你使用的格式)。

最简单的修复方法是将日期格式从“d m y”更改为“Ymd”,以便将其作为数字进行比较。

另外,你提到moddate应该小于或等于,但是你的代码使用> =,所以你可能需要切换。

+0

嘿,谢谢! 我忘了在上面的代码中提到的是,有一个文件列表不只是一个,你会知道这对我使用foreach是如何工作的吗? 这就是我到目前为止,但$ lastmoddate只有一个文件的值...我似乎无法得到每个文件实际上最后修改日期..任何想法? 的foreach($结果为$文件){ 如果($ LASTMODDATE> $ todaysdate){ 如果(strpos($文件, “+12:00”!)== FALSE){ 回声 “$文件” 。“,”。date(“h:id/m/Y”,filemtime($ file))。“\ r \ n”。“
”; } } } – user1026866

+0

假设$结果是文件列表,只需带上您的filemtime()在foreach内。 foreach($ result as $ file){if(date(“Ymd”,filemtime($ file))> = date(“Ymd”,time())){/ * etc .. * /}代码有点浓缩,但希望你能得到照片。 – NJLaPrell

相关问题