我想在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。
任何帮助?
答案 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
,而不必过滤掉不需要的文件类型/目录。