当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP iptcparse()用法及代码示例


什么是IPTC数据?

IPTC 数据通常称为与图像文件等相关联的元数据。它是为使用媒体而创建的标准化元数据格式。此 IPTC 数据通常包括图像详细信息,例如位置、描述、标题、日期和版权。

PHP iptcparse() 函数是一个内置函数,用于解析图像中的 IPTC 数据。

用法:

array|false iptcparse( string $iptc_data )



参数:该函数接受上述和以下描述的单个参数:

  • $iptc_data:它需要我们从图像中获取的 IPTC 数据的二进制块。

返回值:如果出错或在图像中找到数据,则返回布尔值 false。如果在图像中找到数据,则它返回一个带有标签标记作为索引的数组。

范例1:以下代码适用于图像中存在数据时的图像。

PHP


<?php
  
// Fetching image size but we actually have to
// use $info that contain meta data of image
// 1st argument is name of the image and second
// is optional but we pass any variable name 
// because it contains meta data 
$img_size = getimagesize('1.jpg', $img_info);
  
/* We have an array of length three of meta
data of image in $img_info variable but we
have to parse only IPTC data so we have to
pass APP13 which contain IPTC data */
$iptc_data = iptcparse($img_info['APP13']);
  
// IPTC data fetched 
foreach ($iptc_data as $key => $value) {
    echo var_dump($key,"---",$value)."<br>";
}
  
echo "<br><b>Fetching data:</b><br>";
  
// Now looping through each and every
// key value pair
foreach ($iptc_data as $key => $value) {
    for ($i=0; $i < sizeof($value); $i++) { 
        echo $key." -- ".$value[$i]."<br>";
    }
}
  
?>

输出:我们可以看到这些键代表——

2#120 — 图片标题

2#080 — 图片作者

2#055 — 创建图像的日期



2#060 — 时间

2#025 — 图像中的标签

2#116 — 图片版权

string(5) “1#090” string(3) “—” array(1) { [0]=> string(3) “%G” }
string(5) “1#000” string(3) “—” array(1) { [0]=> string(2) “” }
string(5) “2#000” string(3) “—” array(1) { [0]=> string(2) “” }
string(5) “2#120” string(3) “—” array(1) { [0]=> string(91) “Front part views of
three exciting steam engines in a railroad museum near Vienna (Austria)” }
string(5) “2#080” string(3) “—” array(1) { [0]=> string(32) “IPTC Photo Metadata WorkingGroup” }
string(5) “2#055” string(3) “—” array(1) { [0]=> string(8) “20191123” }
string(5) “2#060” string(3) “—” array(1) { [0]=> string(6) “000000” }
string(5) “2#025” string(3) “—” array(2) { [0]=> string(8) “railroad” [1]=> string(12) “steam engine” }
string(5) “2#116” string(3) “—” array(1) { [0]=> string(38) “© Copyright 2019, IPTC - www.iptc.org” }
string(5) “2#110” string(3) “—” array(1) { [0]=> string(4) “IPTC” }

Fetching data:
1#090 — %G
1#000 —
2#000 —
2#120 — Front part views of three exciting steam engines in a railroad museum near Vienna (Austria)
2#080 — IPTC Photo Metadata WorkingGroup
2#055 — 20191123
2#060 — 000000
2#025 — railroad
2#025 — steam engine
2#116 — © Copyright 2019, IPTC - www.iptc.org
2#110 — IPTC

示例 2:以下代码演示了图像中不存在数据时的函数。

PHP


<?PHP
     
$img_size = getimagesize(
'https://media.geeksforgeeks.org/wp-content/uploads/20210726112758/gfg2.jpg',
    $img_info);
  
echo var_dump($img_info);
$iptc_data = iptcparse($img_info['APP13']);
  
?>

输出:

array(2) { [“APP0”]=> string(14) “JFIF“” [“APP1”]=> string(32) “ExifMM*” }
Notice:
Undefined index:APP13 in C:\xampp\htdocs\GeeksForGeeks\contentReviewJuly\iptcparse\indexCopy.php on line 4

正如我们所看到的,图像中不存在 IPTC 块,它会引发错误。

参考:  https://www.php.net/manual/en/function.iptcparse.php




相关用法


注:本文由纯净天空筛选整理自namankumar2592大神的英文原创作品 PHP iptcparse() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。