在php中获取jpg图像的iptc元数据

sil*_*air 5 php iptc metadata

我正在尝试使用 php 从 jpg 图像(http://pepeliana.com/images/DSC4008.jpg)中获取一些 iptc 元数据。引用图像的标题元数据设置为“测试”。我已经阅读了 php 手册和似乎可以完成工作的两个函数 - iptcparse() 和 exif_read_data()。这两个功能都在php中启用。但是,对于我的一生,我无法弄清楚为什么这两个函数都没有返回所需的数据。这是我尝试过的示例代码,我还应该提一下,我还在几张具有 Title 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>';
        }
    }                 
}
 ?>
Run Code Online (Sandbox Code Playgroud)

还:

<?php
$exif = exif_read_data('DSC4008.jpg', 0, true);
echo $exif['WINXP']['Title'];
?>
Run Code Online (Sandbox Code Playgroud)

如您所见,这很简单,但是,我无法返回我想要的东西。显然我一定遗漏了一些明显简单的东西,不是吗?请帮忙!

Ste*_*fan 1

您已将图像的 ImageDescription 设置为“测试”,
这将起作用:

$exif = exif_read_data('1.jpg','IFD0',true);
echo $exif["IFD0"]["ImageDescription"];
Run Code Online (Sandbox Code Playgroud)

回声

Testing
Run Code Online (Sandbox Code Playgroud)