2011-11-12 21 views
6

EXIFデータを読みたいときに写真に問題があります。exif_read_data - 不正なAPP1 Exif識別子コード

以下の私のコード:いくつかの写真有り

$exif_date = exif_read_data($file_path, 'IFD0'); 

私はwarrningます: メッセージ:はexif_read_data(001.JPG)[function.exif-読み取りデータ]:不適切なAPP1 Exifの識別子コード

私の質問は:どのように私はこのwarrningをかき消すことができます、どうすればapp1がexif_readの前に正しいかどうか調べることができますか? ありがとうございます。

+0

私はまだこのワーニングがあるのか​​分からないので、それを取り除く唯一の方法はexif_read_dataの前に "@"を入れることです – baranq

答えて

0

APP1マーカが実際にEXIFデータが含まれている場合は、迅速な答えのために(そのマーカーのコンテンツは、「Exifの」で開始する必要があります)ファイルからAPPマーカを抽出して検証する

11

をPHPのgetimagesize()機能を使用することができますこの投稿の最後の行を見てみましょう。

私はまだいくつかのコードが不足していると思います。私は正確に同じ問題に出くわしたと検索した後、私は、複数のウェブサイトがこの問題に関連が見つかりました:

http://drupal.org/node/556970 2つのソリューションとバグレポート:

  1. は単にexif_read_data
  2. チェックの前に@を置きますそれがここにdcroの答えを読んだ後のExif

が含まれている場合$imageinfo['APP1']は、私が見つけたそのの2番目のパラメータは、このような$imageinfo配列を返します。今、私は次のコードで私のイメージの1つをテストした:

<?php 
getimagesize("test.jpg", $info); 
var_dump($info); 
?> 

は、これは次のように返さ:

array(1) { 
    ["APP1"]=> 
    string(434) "http://ns.adobe.com/xap/1.0/<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> 
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Exempi + XMP Core 4.1.1"> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
    <rdf:Description rdf:about="" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"> 
    <dc:type>Image</dc:type> 
    <dc:format>image/jpeg</dc:format> 
    </rdf:Description> 
</rdf:RDF> 
</x:xmpmeta> 

<?xpacket end="w"?>" 
} 

このところで。 Exifのようには見えません。これはXMPのように見えますが、面白いのはexifoolがexifデータ(例:向き)を見つけたことです。 XMP specificationでは、XMPとExifのデータを1つのファイル(18ページ)に並べて表示することが可能です。さらに検索すると、このようなスクリプトがextract Exif from XMPにあることが明らかになりました。とにかく

  1. getimagesize()は、私の絵でくれたExifについての使用可能な情報を提供して
  2. ていないために述べたスクリプトは私の画像にExifデータをXMPデータに埋め込まれていないことを示していますそして
  3. それは単にEXIF-読み取りデータ()警告

私はまだ@exif-read-data($file_path)ソリューションを使用するのを抑制するために動作します。