我正在尝试用php从jpg image (http://pepeliana.com/images/DSC4008.jpg)中获取一些IPTC元数据。参考图像的标题元数据被设置为"Testing“。我已经看过php手册和两个看起来很有用的函数iptcparse()和exif_read_data()。这两个功能都在php中启用。然而,对于我来说,我弄不明白为什么两个函数都不能返回所需的数据。以下是我尝试过的示例代码,我还应该提到,我还在几个具有标题iptc元数据的图像上尝试了此代码(因此排除了损坏图像或设置不当的元数据的可能性):
<?php
$size = getimagesize ('DSC4008.jpg', $info);
if(is_array($info)) {
$iptc = iptcparse($info["APP13"]);
foreach (array_keys($iptc) as $s) {
$c = count ($iptc[$s]);
for ($i=0; $i <$c; $i++)
{
echo $s.' = '.$iptc[$s][$i].'<br>';
}
}
}
?>另外:
<?php
$exif = exif_read_data('DSC4008.jpg', 0, true);
echo $exif['WINXP']['Title'];
?>正如您所看到的,这就像它得到的一样简单,然而,我也不能返回我想要的东西。显然,我肯定遗漏了一些明显简单的东西,不是吗?请帮帮我!
发布于 2012-11-27 05:43:53
您已将镜像的ImageDescription设置为"Testing“
这将在这里起作用:
$exif = exif_read_data('1.jpg','IFD0',true);
echo $exif["IFD0"]["ImageDescription"];回声
Testing发布于 2018-06-19 21:04:26
试试这个:
$size = getimagesize( 'DSC4008.jpg', $iptch );
$iptc = isset( $iptch['APP13'] ) ? iptcparse( $iptch['APP13'] ) : false;
$name = isset( $iptc['2#005'] ) ? $iptc['2#005'][0] : 'Undefined';发布于 2018-09-06 20:37:27
https://stackoverflow.com/questions/13573272
复制相似问题