0

我使用了以下代码示例(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 值匹配的图像,但我正在努力理解如何做到这一点。

我将不胜感激在正确方向上的任何帮助。

4

1 回答 1

1

可能不是最好的方法,但我解决了这个问题

<img src="<?php echo $dir.$photos[$key]['FileName']; ?>">

我对 php 和数组的缺乏经验导致了这一点,但经过一番阅读后,我发现了它及其作品。

谢谢。

于 2020-01-01T19:41:51.713 回答