я хочу получить 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.
Любая помощь?
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
без необходимости фильтрации нежелательных типов файлов / каталогов.
Других решений пока нет …