0

我想在以特定方式结束的目录中显示最后修改的图像。

我可以显示目录中的最后一个文件我只是不知道如何过滤结果以仅显示以“wide-block.jpg”结尾的目录中的最新文件

<?php
$base_url = 'images/folio/web-portfolio';
$newest_mtime = 0;
$show_file = 'images/folio/no-image.jpg';
if ($handle = opendir($base_url)) {
while (false !== ($latestFile = readdir($handle))) {
    if (($latestFile != '.') && ($latestFile != '..') && ($latestFile != '.htaccess')) {
       $mtime = filemtime("$base_url/$latestFile");
       if ($mtime > $newest_mtime) {
          $newest_mtime = $mtime;
          $show_file = "$base_url/$latestFile";
       }
    }
  }
}
echo '<img src="' .$show_file. '" alt="Latest from the web">';
?>

我从其他地方获得了该代码,并意识到一旦我检查显示以“wide-block.jpg”结尾的最新文件,它就不需要列出!= 文件类型的第二个 if 语句。

4

2 回答 2

1

这应该会为您解决,基本上只需添加另一个规则来过滤以您的必填字段结尾的图像。

基本上只需使用 strpos() 函数来确定您要查找的值是否在文件名中。

还将代码包装在一个函数中,允许机器人获得所需的文件夹位置,以及文件必须以所需的字符串结尾。

<?php
function getLatestImage($folderName, $imageEnding) {
    $newest_mtime = 0;
    $base_url = 'images/folio/'.$folderName;        
    $file_ending = $imageEnding;
    $show_file = 'images/folio/no-image.jpg';
    if ($handle = opendir($base_url)) {
        while (false !== ($latestFile = readdir($handle))) {
            if (($latestFile != '.') && ($latestFile != '..') && ($latestFile != '.htaccess') && (strpos($latestFile, $file_ending))) {
             $mtime = filemtime("$base_url/$latestFile");
                if ($mtime > $newest_mtime) {
                    $newest_mtime = $mtime;
                    $show_file = "$base_url/$latestFile";
                }
            }
        }
    }
    return $show_file;
}

echo '<img src="' .getLatestImage('foldername', 'file_ending.jpg'). '" alt="Latest from the web">';
?>
于 2012-08-29T18:56:05.103 回答
0

这是我的方式,解决这个问题,我不是程序员,它是尝试错误产品:)

我在 wordpress 安装中使用它并且必须安装插件 Allow PHP in Posts and Pages (这就是为什么 php 标签不同,通常而不是 [PHP] [/PHP])


[PHP]
global $path;    // path to directory has to be global, using it later in html

$dir = "Planetwebcam/";

$files = scandir($dir, 1);                // read directory backkwards

$picture = ($files[0]);                   // get las picture file name

$path = "http://www.yourdomain.ch/Planetwebcam/$picture";

[/PHP]


<a href="[PHP]global $path;echo $path; [/PHP]">
<img class="alignnone size-large" alt="Last picture" src="[PHP]global 
$path;echo $path; [/PHP]" width="1600" height="1200" /></a>
于 2013-07-09T07:39:54.270 回答