出于某种原因,exif_read_data()对目录中的每个图像都返回false,即使我知道我的所有jpeg图像都有元数据属性。
我绝不是一个PHP向导,所以也许我有一个语法错误,或者我只是错过了一些对你们这些PHP向导很明显的东西。
galleryData.metadata = <?php
$dir_path = "Assets/Images/portfolio/";
if (is_dir($dir_path)) {
$files = scandir($dir_path);
for ($i = 0; $i < count($files); $i++) {
$tempPath = $dir_path + $files[$i];
$metadata[$i] = exif_read_data($tempPath);
}
echo json_encode($metadata);
}
?>;
答案 0 :(得分:1)
值得庆幸的是,我没有正确地组合我的字符串。以下是我的固定和工作代码。
galleryData.metadata = <?php
$metadata = array();
if (is_dir($dir_path)) {
for ($i = 0; $i < count($files); $i++) {
$metadata[$i] = exif_read_data("{$dir_path}{$files[$i]}", null, true);
}
echo json_encode($metadata);
}
?>;
答案 1 :(得分:1)
可能是一个解决方案,但需要更多信息真实错误(错误消息?)
exif_read_data()可以将错误的舞会php版本转换为版本: Bug #75785 Many errors from exif_read_data
解决方案可能是使用
$img = new \Imagick(DSC01386.jpg);
$allProp = $img->getImageProperties();
$exifProp = $img->getImageProperties("exif:*");
The Imagick class,是非常强大的类(轮换等)。
该解决方案的完整故事here