2012-07-20 120 views
2

PHP版本5.3.10PHP - 與Fulifilm照片

總之損壞的EXIF數據錯誤,我不能讓所有的EXIF數據出來我的照片 - 它說,他們是腐敗的 - 但另一個PHP可以得到所有的數據,所以我相信這是可能的,但我不知道如何。現在的更詳細的版本...

我有一個腳本只是爲了查看我的相機給定JPG文件的所有EXIF數據。它 看起來像這樣...

$exif_data = exif_read_data ('TEST.JPG', 0, TRUE); 
foreach ($exif_data as $key => $section) { 
    foreach ($section as $name => $val) { 
     echo "$key.$name: $val<br />\n"; 
    } 
} 

這工作正常我的最後一臺相機。然而,當我從我的新的富士相機運行它反對任何JPG文件,我得到這個錯誤信息在上面的列表中的第一行..

Warning: exif_thumbnail(TEST.JPG) [exif_read_data]: corrupt EXIF header: maximum directory nesting level reached in (script name) on line (relevant line) 

然後,它輸出的EXIF數據的不完整的清單。

我猜想第一個迴應是「你的文件已損壞」,但是如果我將它上傳到http://exifdata.com/index.php那麼它會列出所有EXIF數據(包括我真正感興趣的GPS數據)。該網站顯然也運行在PHP上,所以我建議使用PHP可以將GPS數據從那裏拿出來。

我試過使用Google搜索錯誤信息,但我得到的是一些舊的2005或2007 PHP錯誤,以及沒有人回答的類似的stackoverflow線程 - Issues extracting exif data for exif 2.3 using PHP Version 5.2.9

那麼...有什麼想法?

+0

如果另一個PHP版本可以,然後檢查特定PHP使用的libexif的版本。 – 2012-07-20 17:35:02

+0

我不認爲我真的可以問我的虛擬主機安裝不同的版本。我只能說根據我發佈的鏈接,5.2.9也不起作用。在exifdata.com網站上沒有關於他們是誰的信息,所以我無法聯繫他們 - 該URL上的Whois也畫了一個空白。 – reedstonefood 2012-07-20 17:42:38

+0

電子郵件exif人不會幫助 - 這是任何exif庫您的PHP版本正在使用。如果您無法更改您的虛擬主機上的任何內容,那麼您就會陷入構建自己的exif解析器......或切換虛擬主機。 – 2012-07-20 17:48:35

回答

1

我也有一個富士相機同樣的問題,但我想我已經找到了解決辦法,我已經提出了一個PHP錯誤報告在這裏:https://bugs.php.net/bug.php?id=66443

如果你可以從源代碼編譯自己的PHP(或說服你的網絡主機爲你這樣做)這是一個簡單的修復。