php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #31980 Unable to Extract Windows XP EXIF Information
Submitted: 2005-02-15 07:47 UTC Modified: 2005-02-16 15:40 UTC
From: sdteffen at gmail dot com Assigned: edink
Status: Closed Package: EXIF related
PHP Version: 4CVS, 5CVS (2005-02-15) OS: win32 only
Private report: No CVE-ID:
 [2005-02-15 07:47 UTC] sdteffen at gmail dot com
Description:
------------
I'm trying to extract EXIF information created by the Windows XP Explorer (In particular the Comments field).

Dumping the array created by

exif_read_data('c:\test.jpg','WINXP',true);

includes the following result:

["WINXP"]=>
  array(1) {
    ["Comments"]=>
    string(1) "G"
  }

The problem is that the comment is not only the letter "G",
but a full sentence (starting with G).

Apparently, the comment is UNICODE (UCS-2?). I tried to
use mb_string (Loading php_mbstring.dll before php_exif.dll
like outlined in the PHP manual) without success.

The constant EXIF_USE_MBSTRING is 0 - isn't this a contradiction with the PHP Manual that says 
"Windows users must also have the  mbstring  extension enabled"?

If this is not a bug, please consider it as a request to
enhance the PHP Manual with a small example showing the
necessary php.ini configurations to use in conjuction with
Windows XP Explorer EXIF comments. Windows Explorer is the
most convenient application for our users to add EXIF comments.

PHP 4.3.10 Zipfile distribution, using the CGI (php.exe).

Reproduce code:
---------------
exif_read_data('c:\test.jpg','WINXP',true);

Expected result:
----------------
["WINXP"]=>
  array(1) {
    ["Comments"]=>
    string(1) "G"
  }

Actual result:
--------------
["WINXP"]=>
  array(1) {
    ["Comments"]=>
    string(1) "Generator and pump"
  }

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2005-02-15 10:11 UTC] sniper@php.net
Put that image file somewhere where we can download it and try ourselves.

 [2005-02-15 10:19 UTC] pajoye@php.net
> The constant EXIF_USE_MBSTRING is 0 - isn't this a
> contradiction with the PHP Manual that says 
> "Windows users must also have the  mbstring 
> extension enabled"?

Loading the mbstring extension is one of the requirement, another is to specify the encoding (See http://de.php.net/exif) using either php.ini or ini_set.

If the problem remains, please provide a link to the image  as requested by Sniper.

--Pierre
 [2005-02-15 12:22 UTC] sdteffen at gmail dot com
Thanks for the comments.
I've updated my code according to Pierre's suggestion:

ini_set('exif.decode_unicode_intel', 'UCS-2LE');
ini_set('exif.encode_unicode','ISO-8859-1');
ini_set('exif.encode_jis','ISO-8859-1');
ini_set('exif.decode_jis_intel','ISO-8859-1');
$arrComment = exif_read_data('1.jpg', 'WINXP', true);

The problem still exists (Only first letter is returned).

Here's the example file:

http://sdteffen.de/1.jpg
 [2005-02-15 13:48 UTC] sniper@php.net
Nevermind, in windows the EXIF module isn't compiled with MBSTRING support.

 [2005-02-15 13:52 UTC] sniper@php.net
Assigning to our win32 build guru..

 [2005-02-16 11:00 UTC] edink@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 [2005-02-16 15:40 UTC] sdteffen at gmail dot com
Thanks for the quick fix.
However, it looks like php_exif.dll is missing from the
snapshot zip file.
I checked 

http://snaps.php.net/win32/php4-win32-STABLE-200502161330.zip

and 

http://snaps.php.net/win32/PECL_STABLE/
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Mon Apr 21 07:02:06 2014 UTC