iptcembed()

iptcembed() — Embeds binary IPTC data into a JPEG image.

Built-in function of PHP 8.5. The manual lists it as available in PHP 4, PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.

Signature

iptcembed(string $iptc_data, string $filename, int $spool = 0): string|bool

Parameters

ParameterTypeWhat it takes
$iptc_datastringThe data to be written.
$filenamestringPath to the JPEG image.
$spoolintSpool flag. If the spool flag is less than 2 then the JPEG will be returned as a string. Otherwise the JPEG will be printed to STDOUT.

Return value

If spool is less than 2, the JPEG will be returned, or false on failure. Otherwise returns true on success or false on failure.

Example

A runnable snippet:

// iptc_make_tag() function by Thies C. Arntzen function iptc_make_tag($rec, $data, $value) { $length = strlen($value); $retval = chr(0x1C) . chr($rec) . chr($data); if($length < 0x8000) { $retval .= chr($length >> 8) . chr($length & 0xFF); } else { $retval .= chr(0x80) . chr(0x04) . chr(($length >> 24) & 0xFF) . chr(($length >> 16) & 0xFF) . chr(($length >> 8) & 0xFF) . chr($length & 0xFF); } return $retval . $value; } // Path to jpeg file $path = './phplogo.jpg'; // Set the IPTC tags $iptc = array( '2#120' => 'Test image', '2#116' => 'Copyright 2008-2009, The PHP Group' ); // Convert the IPTC tags into binary code $data = ''; foreach($iptc as $tag => $string) { $tag = substr($tag, 2); $data .= iptc_make_tag(2, $tag, $string); } // Embed the IPTC data $content = iptcembed($data, $path); // Write the new image data out to the file. $fp = fopen($path, "wb"); fwrite($fp, $content); fclose($fp);

All PHP 8.5 built-in functions

Reference card built from the PHP manual page iptcembed() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.