使用PHP提取IPTC元数据-需要主题代码十六进制值

使用PHP提取IPTC元数据-需要主题代码十六进制值,php,metadata,iptc,Php,Metadata,Iptc,我有一个小PHP脚本,可以在上传后从图像文件中获取特定的IPTC标记(见下文): 一切都很好-除了我一辈子都找不到SubjectCode字段的等效十六进制值!IPTC参考文件将该值列为“0x020C”-但这不起作用。根据Adobe XMP文档,它的ID值为“2:12”。我被难住了。有没有大师能给我指出正确的方向?你有没有把$iptc作为一个变量转储来检查它包含了什么?有一本图形手册,但出于某种原因,这些似乎与你的代码不匹配。你能至少提供你上传的文件,这样我们就可以复制你的结果吗?谢谢你的回复。通

我有一个小PHP脚本,可以在上传后从图像文件中获取特定的IPTC标记(见下文):


一切都很好-除了我一辈子都找不到SubjectCode字段的等效十六进制值!IPTC参考文件将该值列为“0x020C”-但这不起作用。根据Adobe XMP文档,它的ID值为“2:12”。我被难住了。有没有大师能给我指出正确的方向?

你有没有把$iptc作为一个变量转储来检查它包含了什么?有一本图形手册,但出于某种原因,这些似乎与你的代码不匹配。你能至少提供你上传的文件,这样我们就可以复制你的结果吗?谢谢你的回复。通过使用,我可以看到文件()中有与标记相对的数据(主题代码(XMP))。部分问题可能是它位于“XMP-IPTC照片元数据字段”下?PS。忽略给定代码中的变量名-它们与摄影师在相应字段中输入的内容相匹配,而不是字段通常的用途。除了神秘的$subject(主题代码),它隐藏了正在拍摄的艺术品的尺寸。使用JavaScript字符串搜索()方法找到了另一种方法,将图像作为文本读取(readAsText)。这使我可以访问整个文件。然后我使用split()方法删除标记。可能效率不高,但似乎有效。您是否已将$iptc进行var_转储以检查其包含的内容?有一本图形手册,但由于某些原因,这些手册似乎与您的代码不匹配。你能至少提供你上传的文件,这样我们就可以复制你的结果吗?谢谢你的回复。使用我可以看到文件()与标记(主题代码(XMP)有数据。部分问题可能是它位于“XMP-IPTC照片元数据字段”下?PS。忽略给定代码中的变量名-它们与摄影师在相应字段中输入的内容相匹配,而不是字段通常的用途。除了神秘的$subject(主题代码),它隐藏了正在拍摄的艺术品的尺寸。使用JavaScript字符串搜索()方法找到了另一种方法,将图像作为文本读取(readAsText)。这使我可以访问整个文件。然后我使用split()方法删除标记。可能效率不高,但似乎有效。
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);

$size = getimagesize('uploads/' . $_FILES['file']['name'], $info);

if(isset($info['APP13'])) { $iptc = iptcparse($info['APP13']); }

$title = $iptc["2#005"][0];
$artist = $iptc["2#025"][0];
$medium = $iptc["2#120"][0];
$date = $iptc["2#092"][0];
$credit = $iptc["2#080"][0];
$subject = $iptc["?????"][0];