我正在尝试从图像的exif数据中提取“标题”,“标题”和“关键字”,以便可以将其登录到数据库中。我需要的其他字段(如文件名,图像尺寸等)很容易找到和提取,但是这三个字段是一个问题。我可以看到数据在['IFD0'] ['ExtensibleMetadataPlatform']字段中,并且与许多其他数据混合在一起。 我在元数据的标题和标题的开头和结尾添加了“ ==”,以期使用这种“独特的”字符组合来查找并剪切字符串。 问题在于,ExtensibleMetadataPlatform字段比屏幕上显示的要大得多。回声后的屏幕数据长度约为270个字符,而strlen($ my_string)为12,075。 当使用字符串函数切出我需要的数据时,这会导致不可预测的结果。 有谁知道发生了什么事,或者更容易地获取我需要的信息?我已经看到了对“ $ iptc = iptcparse($ info ['APP13']);”的引用;但我的exif数据中似乎没有'APP13'。 ps。我正在使用Lightroom输入标题,标题和关键字。
if (isset($exif['IFD0']['ExtensibleMetadataPlatform']))
{
$cap_key_title = $exif['IFD0']['ExtensibleMetadataPlatform'];
echo 'cap_key_title is... '.$cap_key_title.'<p>';
// Below is a typical result of the line above, this is about 270 odd characters
// Phillip Biggs ==Broken sunlight on the fell== ©Phillip Biggs Lake District National Park Serene ==A restful quiet corner of Cumbria.== Licensed useages only 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255 0, 0 255, 255
echo 'length of string is... '.strlen($cap_key_title).'<p>'; // Produces a value around 12,071 characters.
$title = stristr($cap_key_title,"Biggs"); // Cut off up to the string 'Biggs'
echo 'All the data now shown... '.$title.'<p>'; // Now we can see all the other data previously hidden
}
最后一个echo语句的SHORT部分在这里。...
Biggs“ photoshop:DateCreated =” 2006-10-03“ photoshop:Source =” www.imagefair.co.uk或www.flick“ photoshop:TransmissionReference =”已进入2017 BJ第三轮景观。首先放置。“ photoshop:State =” Cumbria“ photoshop:Country =”英国“ xmp:CreateDate =” 2006-10-03T13:32:47“ xmp:CreatorTool =” Adobe Photoshop Lightroom 5.7(Windows)“ xmp:Label = “用于imagefair和club” xmp:MetadataDate =“ 2019-05-27T00:19:02 + 01:00” xmp:ModifyDate =“ 2019-05-27T00:19:02 + 01:00” xmpMM:DocumentID =“ xmp.did:ed6b23db-7708-6444-922d