2011-03-03 12 views
6

मैं एक छोटी सी लिपि लिख रहा हूं जो छवियों से कुछ exif मूल्यों को इकट्ठा करता है ... अर्थात् निर्माण की तारीख, बनाना और मॉडल।PHP/(खराब) exif डेटा/चेतावनियां, क्या करना है?

मैं देख रहा हूं (विशेष रूप से डिफ़ॉल्ट आईफ़ोन मेल ऐप के माध्यम से मेल की गई छवि के साथ) कि exif डेटा बदल दिया गया है, जो एक ज्ञात समस्या है (मेल ऐप उन्हें भेजने से पहले छवियों को संपीड़ित करता है, भले ही 'पूर्ण आकार' चयनित)। जिन मूल्यों को मैं ढूंढ रहा हूं वे वहां दिखाई देते हैं, हालांकि मुझे उन तक पहुंचने वाली PHP चेतावनियां मिलती हैं। वास्तव में मूल्यों को प्राप्त करने में कोई समस्या नहीं है, लेकिन चेतावनी स्पष्ट रूप से मेरे लिए काम नहीं कर रही है।

कॉलिंग ini_set ('display_errors', 0) चेतावनियों को छुपाता है, लेकिन मेरे लिए मैला लगता है। इस परिदृश्य के लिए, इस चेतावनी के लिए, मैं इस चेतावनी को अनदेखा कर सकता हूं कि थोड़ा बेहतर है?

मेरा प्रारंभिक विचार कोशिश/पकड़ में सब कुछ लपेट रहा था, लेकिन चेतावनी अभी भी पृष्ठ पर प्रमुख रूप से प्रदर्शित होती है।

मैं बस मानक exif_read_data() फ़ंक्शन का उपयोग कर रहा हूं, मुझे लगता है कि बाहरी पुस्तकालय मुझे जितनी छोटी आवश्यकता होगी उसके लिए थोड़ा सा होगा।

पीएचपी:

 
if($_GET['i']) { 
    $input = strtolower($_GET['i'] . ".jpg"); 
    if(file_exists($input)) { 
    $exif = exif_read_data($input); 
    foreach($exif as $key => $value) { 
     if(!in_array($key, Array("DateTime","Make","Model"))) { 
     unset($exif[$key]); 
     } 
    } 
    ksort($exif); 
    print_r($exif); 
    } 
} 

चेतावनी:

Warning: exif_read_data(trailmarker.jpg) [exif_read_data]: Illegal IFD size: x00C4 + 2 + x3239*12 = x25B70 > x2B74 in C:\xampp\htdocs\exif\dumpfolder\exif.php on line 5

+0

क्या आप सटीक कोड का उपयोग कर रहे हैं, और आपको सटीक चेतावनियां मिल रही हैं? –

+0

' $ value के रूप में $ परिणाम) { अगर (! In_array ($ कुंजी, ऐरे ("डेटटाइम", "मेक", "मॉडल"))) { अनसेट ($ परिणाम [$ कुंजी]); } } ?> ' – Jeff

+0

आह, अच्छी तरह से मुझे नहीं पता कि स्टैक ओवरव्लो का उपयोग कैसे करें ... :( – Jeff

उत्तर

24

आप @ operator उपयोग कर सकते हैं display_errors का उपयोग किए बिना चेतावनी को छिपाने के लिए, यानी

$exif = @exif_read_data(..); 

कि display_errors की स्थापना की तुलना में बेहतर है इसलिये यह केवल exif पढ़ने के फ़ंक्शन पर चेतावनियां/त्रुटियों को चुप करता है, और आपके कोड में अन्य संभावित त्रुटियों को छिपाता नहीं है।

+0

सहमत, मैं जो काम कर रहा था उसके मुकाबले ज्यादा सुरुचिपूर्ण। धन्यवाद। – Jeff

+0

बहुत बहुत धन्यवाद !! – MeV

संबंधित मुद्दे