php - imagecreatefromjpeg timeout issue -
मेरे पास एक लंबा कार्य है जो imagecreatefromjpeg () का उपयोग करता है।
< कोड> फ़ंक्शन myFunction () {... ... $ im = imagecreatetruecolor (600, 400); $ MyImage = imagecreatefromjpeg ("http://example.com/file.jpeg"); इमेजकोपी ($ im, $ myImage, 5, 5, 0, 0, 48, 48); ... ... ... ...} मैं दूरस्थ URL से jpeg फ़ाइल लोड करता हूँ सर्वर लोड होने के कारण कभी-कभी मुझे मिलता है:
चेतावनी: चेतावनी (2): imagecreatefromjpeg (http://example.com/file.jpeg): स्ट्रीम को खोलने में विफल: कनेक्शन का समय समाप्त हुआ [/var/www/vhosts/example2.com/httpdocs/myfile.php, पंक्ति 1851] इस फ़ाइल के लिए सभी निष्पादन का समय बिताया जाता है, इसलिए बाकी के लिए अनुरोध असफल हो जाता है फ़ंक्शन
हालांकि मुझे अभी तक की गई जेपीईजी फाइल को डाउनलोड करना है, फिर भी शेष कोड चलाना मेरे लिए स्वीकार्य है।
मैं इस तरह के समाधान की खोज करता हूं:
- इसे आज़माएं: छवि बनाएं Jpeg फ़ाइल से डाउनलोड करें - अगर 5 सेकंड के बाद सफल नहीं होता है, तो छोड़ें - शेष कोड चलाएं
संपादित करें:
- मुझे कभी-कभी यह त्रुटि मिलती है अधिकांश अनुरोध सफल होते हैं तो allow_url_fopen एक समस्या नहीं है।
- यह जेपीईजी फ़ाइल अक्सर एक घंटे की तरह बदलती है।
हालांकि, कोशिश / पकड़ केवल काम करता है, और imagecreatefromjpeg () एक चेतावनी फेंकता है, जो एक प्रकार की त्रुटि है आप त्रुटियों को अपवादों में बदलने के लिए set_error_handler () का उपयोग कर इसे हल कर सकते हैं! अपनी पीएचपी फाइल के शीर्ष पर, डालें
set_error_handler (फ़ंक्शन ($ errno, $ errstr, $ errfile, $ errline, array, $ errcontext) {/ p> // त्रुटि @ -परेटर के साथ दब गई थी यदि (0 === त्रुटि_रेपोर्टिंग ()) {वापसी झूठी;} नई त्रुटिएक्सेशन ($ errstr, 0, $ errno, $ errfile, $ errline);};
अपने फ़ंक्शन में, आप ऐसा कर सकते हैं:
फ़ंक्शन myFunction () {... ... try {$ im = imagecreatetruecolor (600, 400); $ MyImage = imagecreatefromjpeg ("http://example.com/file.jpeg"); इमेजकोपी ($ im, $ myImage, 5, 5, 0, 0, 48, 48); } पकड़ (त्रुटिएक्सेप्शन $ पूर्व) {// कुछ भी नहीं करें / या किसी तरह त्रुटि को संभाल कर) // कोड चलाना जारी है ... ... ... ...}
Comments
Post a Comment