如何获取文件夹内图像的注释元数据

时间:2018-05-26 10:56:36

标签: php exif

我想在comment文件夹

中获取../banners图像的元数据
$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

我在localhost,Windows 7,wamp。

任何帮助?

1 个答案:

答案 0 :(得分:0)

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

<?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);
}

这将只返回*.jpg,而不必过滤掉不需要的文件类型/目录。