10代と話して驚いたこと

ディレクトリファイルから画像ファイルの更新日時を取得して、
拡張子を問わず、最新の画像のみ表示させたいのですが、
うまく出来ません。ご教授お願いします。

~・~・~・~・~・~・~
<?php
$dir = @opendir("****");
while($file = readdir($dir)) {
$kaku = substr($file, -3, 3);
if($kaku=="jpg" || $kaku=="gif" || $kaku=="png"){
$cnt++;
$last = date("ymdHis", filemtime($file));
$img="$last$file";
$filename[$cnt]=$file;
}
}
closedir($dir);
}
arsort($img);
$img_file= substr($img, 12);
$cnt=0;
foreach($img_file as $value){
$cnt++;
if ($cnt<=1){
echo "<img src=\"$value\">";
}
}
?>

A 回答 (1件)

配列で管理してソートして頭のデータをとるとか・・・



<?php
$dir="・・・";
$handle = opendir($dir);
$count=0;
while (false !== ($file = readdir($handle))) {
if(preg_match("/(\.jpg|\.gif|\.png)$/i",$file)){
$imgs[$count]["file"]=$file;
$imgs[$count]["mtime"]=filemtime($file);
$count++;
}
}
usort($imgs,create_function('$a,$b','$str="mtime";if($a[$str]==$b[$str]){return 0;}return($a[$str]>$b[$str])?-1:1;'));
print "<img src=\"".$imgs[0]["file"]."\">";
?>
    • good
    • 0
この回答へのお礼

ありがとうございます。

解決しました!!
「create_function()」という関数があるんですね。
とても勉強になりました。

お礼日時:2008/08/12 12:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報