0

これにより、フォルダーから画像が取得されます。

$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 AND FOR EACH ステートメントです (ここに私の問題があります)!!!

$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の学習を始めたばかりですが、誰か助けてくれませんか!?

ありがとう

4

1 に答える 1

0

date() 関数を使用することで、整数の日付を人間が判読できる日付に変換しています。これを行うと、(使用している dmy 形式で) 日付を比較できなくなります。

最も簡単な解決策は、日付形式を「dm y」から「Ymd」に変更して、数値として比較できるようにすることです。

また、moddate は以下である必要があると述べていますが、コードでは >= が使用されているため、それを切り替える必要がある場合があります。

于 2011-11-06T04:31:36.897 に答える