Как получить комментарии метаданных изображений внутри папки - PullRequest
0 голосов
/ 26 мая 2018

Я хочу получить 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

Я на локальном хосте, windows7, вамп.

Любая помощь?

1 Ответ

0 голосов
/ 26 мая 2018

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 без необходимости отфильтровывать нежелательные типы файлов / каталогов.

...