如何获取文件夹内图像的评论元数据

How to get comment metadata of images inside a folder

我想在 ../banners 文件夹

中获取图像的 comment 元数据
$arr = scandir("../banners/");
foreach($arr as $el){
  echo $el;  // this works
  $path = '../banners/' . $el;
  //$arrb = exif_read_data($path, 0, true); // line 91
  $arrb = exif_read_data($path, "COMMENT");  // line 92
  print_r($arrb);
}

结果: 如果我执行 line 91 列出所有内容,但无论如何 - 有一个警告:

Warning: exif_read_data(): Unable to open file... on line 91

如果我执行line 92没有数据但是有警告:

Warning: exif_read_data(): Unable to open file... on line 92

我在本地主机上,windows 7,wamp。

有什么帮助吗?

scandir()将return当前目录.和父目录..。你想过滤掉那些:

<?php
$blacklist = ['.', '..'];
$arr = scandir("../banners/");
foreach ($arr as $el) {
    if (!in_array($el, $blacklist)) {
        echo $el;  // this works
        $path = '../banners/' . $el;
        $arrb = exif_read_data($path, "COMMENT");  // line 92
        print_r($arrb);
    }
}

我创建了一个 $blacklist 数组来保存您不希望被解释为图像的那些值。

另一种方法是使用 glob() 代替:

<?php
foreach (glob('../banners/*.jpg') as $el) {
    echo $el;  // this works
    $path = '../banners/' . $el;
    $arrb = exif_read_data($path, "COMMENT");  // line 92
    print_r($arrb);
}

这将 return 仅 *.jpg 而无需过滤掉不需要的 filetypes/directories。