2012-11-26 67 views
3

我試圖用php從jpg圖像(http://pepeliana.com/images/DSC4008.jpg)獲取一些iptc元數據。參考圖像的標題元數據設置爲「測試」。我已經通過了PHP手冊和兩個似乎可以完成這項工作的函數 - iptcparse()和exif_read_data()。這兩個函數都在php中啓用。然而,對於我的生活,我無法弄清,爲什麼兩個函數都不會返回所需的數據。這裏是我嘗試過的一個示例代碼,我還應該提到,我也嘗試了幾個帶有Title iptc元數據的圖像上的代碼(因此排除了損壞圖像或設置元數據不當的可能性):在php中獲取jpg圖像的iptc元數據

<?php 
$size = getimagesize ('DSC4008.jpg', $info);  
if(is_array($info)) { 
    $iptc = iptcparse($info["APP13"]); 
    foreach (array_keys($iptc) as $s) {    
     $c = count ($iptc[$s]); 
     for ($i=0; $i <$c; $i++) 
     { 
      echo $s.' = '.$iptc[$s][$i].'<br>'; 
     } 
    }     
} 
?> 

也:

<?php 
$exif = exif_read_data('DSC4008.jpg', 0, true); 
echo $exif['WINXP']['Title']; 
?> 

正如你所看到的,這很簡單,因爲它得到,但是,我不能讓任何返回我想要的東西。顯然,我必須錯過一些顯然很簡單的事情,不是嗎?請幫忙!

回答

1

您已設置圖像的ImageDescription以「測試」
在這裏,這將工作:

$exif = exif_read_data('1.jpg','IFD0',true); 
echo $exif["IFD0"]["ImageDescription"]; 

呼應

Testing 
+1

這樣做的工作,謝謝你,但我寧願與合作iptc,因爲它實際上是人爲輸入的元數據,而不是來自相機的元數據,它是exif。我只嘗試過exif,因爲我最初無法獲得iptcparse的工作。你可以/有人評論與iptcparse解決方案? – silverchair