什么是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
相关用法
- PHP imagecreatetruecolor()用法及代码示例
- PHP fpassthru( )用法及代码示例
- PHP ImagickDraw getTextAlignment()用法及代码示例
- PHP Ds\Sequence last()用法及代码示例
- PHP Imagick floodFillPaintImage()用法及代码示例
- PHP geoip_continent_code_by_name()用法及代码示例
- PHP GmagickPixel setcolor()用法及代码示例
- PHP opendir()用法及代码示例
- PHP cal_to_jd()用法及代码示例
- PHP stream_get_transports()用法及代码示例
- PHP Ds\Deque pop()用法及代码示例
- PHP SimpleXMLElement children()用法及代码示例
- PHP is_numeric()用法及代码示例
- PHP Imagick adaptiveSharpenImage()用法及代码示例
- PHP XMLWriter endDtdEntity()用法及代码示例
- PHP isset()用法及代码示例
- PHP ctype_print()用法及代码示例
- PHP Imagick flopImage()用法及代码示例
注:本文由纯净天空筛选整理自namankumar2592大神的英文原创作品 PHP iptcparse() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。