我想在以特定方式结束的目录中显示最后修改过的图像。
我有工作来显示目录中的最后一个文件我只是不知道如何过滤结果只显示以“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语句。
答案 0 :(得分:1)
这应该为您排序,基本上只需添加另一条规则来过滤以您所需字段结尾的图像。
基本上只需使用strpos()函数来确定您要查找的值是否在文件名中。
还将代码包装在一个函数中,允许bot获取所需的文件夹位置,以及文件必须结束的所需字符串。
<?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">';
?>
答案 1 :(得分:0)
这是我的方式,解决这个问题,我不是程序员,它试试错误产品:)
我在wordpress安装中使用它并且必须安装插件 在帖子和页面中允许PHP (这就是为什么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>