【发布时间】:2020-01-01 17:37:32
【问题描述】:
我使用了以下代码示例 (https://github.com/josephtinsley/JQueryEXIFImageTags/blob/master/process.php) 并对其进行了修改以扫描图像目录并将其放入与 DateTimeOriginal 匹配的 exif 的数组中。
<?php
$date = new DateTime();
$date->setDate(2015, 9, 11);
$timenow = $date->format('Y:m:d H:i:s');
$dir = './img/';
$files = scandir($dir);
$ext_list = ['jpg', 'gif', 'png'];
foreach($files as $image_file)
{
$l = strtolower($image_file);
$parse_file_name = explode(".", $l);
$file_ext = end($parse_file_name);
if(in_array($file_ext, $ext_list) )
{
$exif_data = exif_read_data($dir.$image_file);
$photos[] = [
'FileName' =>$exif_data['FileName'],
'DateTimeOriginal' =>$exif_data['DateTimeOriginal'],
'TimeNow' =>$timenow,
];
}
}
?>
然后我写了一个带有 if 语句的 array_search,如果在浏览器刷新时 'DateTimeOriginal' 的 exif 数据和 $timenow (我设置为固定日期)之间存在匹配,则输出键号,或者说'不' 如果不匹配
<?php
if ($key = array_search($timenow, array_column($photos, 'DateTimeOriginal')))
{
echo $key;
} else {
echo "nope";
}
?>
这有效并且行为符合预期。但是,我最终想要它做的是显示与数组的 $key 值匹配的图像,但我很难理解如何做到这一点。
如果能在正确的方向上提供任何帮助,我将不胜感激。
【问题讨论】:
-
解决了这个问题,见下文