PHP EXIF 数据无效

PHP EXIF data not working

我是 PHP 的新手,正在改编来自 http://www.techrepublic.com/article/create-a-dynamic-photo-gallery-with-php-in-three-steps/ 的脚本,该脚本会在目录中生成 table 图像以及一些随附的 EXIF 数据。唯一的问题是代码没有显示 EXIF 数据。即使是原始源代码也会发生这种情况。我对正在发生的事情的最佳猜测是原始源代码中的某些内容陈旧且过时,现代 PHP 不再支持。我已确保我的服务器启用了 EXIF。

代码如下:

<table>
<?php
// define directory path
$dir = "path/to/directory";

// iterate through files
// look for JPEGs
if (is_dir($dir)) {
  if ($dh = opendir($dir)) {
    while (($file = readdir($dh)) !== false) {
      if (preg_match("/.jpg/", $file)) {

        // read EXIF headers
        $exif = exif_read_data($file, 0, true);

        // get image
        echo "<tr><td rowspan='3'><img src='$dir/$file'></td>";

        // get file name
        echo "<th>Title</th><td>" . $exif['FILE']['FileName'] . "</td></tr>";

        // get timestamp
        echo "<tr><th>Year</th><td>"  . $exif['IFD0']['DateTime'] . "</td></tr>";

        // get image dimensions
        echo "<tr><th>Description</th><td>" . $exif['IFD0']['Comments'] . "</td></tr>";

      }
    }
    closedir($dh);
  }
}
?>
</table>

编辑: 我还收到以下错误日志:

20160815T185355: benxd.me/art/gallery.php 
PHP Warning:  exif_read_data(): Unable to open file in /hermes/walnaweb01a/b893/pow.hdemoras/htdocs/benxd/art/gallery.php on line 21 
PHP Warning:  exif_read_data(): Unable to open file in /hermes/walnaweb01a/b893/pow.hdemoras/htdocs/benxd/art/gallery.php on line 21 
PHP Warning:  exif_read_data(): Unable to open file in /hermes/walnaweb01a/b893/pow.hdemoras/htdocs/benxd/art/gallery.php on line 21 
PHP Warning:  exif_read_data(): Unable to open file in /hermes/walnaweb01a/b893/pow.hdemoras/htdocs/benxd/art/gal 

在我的代码行 21 中是 $exif = exif_read_data($file, 0, true);

尝试明确添加完整路径和部分列表:

$exif = exif_read_data($dir . $file, "FILE,COMPUTED,ANY_TAG,IFD0,THUMBNAIL,COMMENT,EXIF", true);

来源:http://php.net/manual/en/function.exif-read-data.php

我花了几个星期解决这个问题,所以最后我决定创建一个库来从 PHP、100% 原生的 PNG 中提取元数据(Exif、XMP、GPS...),我希望它有所帮助。 :) PNGMetadata