2011-11-06 101 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

相關問題