xml

2012-11-28 10 views
5

डाउनलोड करते समय कर्ल टाइमआउट, इसलिए, मैं url-file को url से कर्ल के साथ प्राप्त करने का प्रयास करता हूं। बात यह है कि, स्क्रिप्ट के माध्यम से मांग पर फ़ाइल उत्पन्न होती है, जिसमें 80-100 सेकेंड लगते हैं और इसलिए मेरा कर्ल टाइमआउट त्रुटि के साथ गिर रहा है।xml

यूआरएल इस तरह दिखता है:

https://domain/mancgi/report?params&out=xml 

मैं CURLOPT_TIMEOUT और CURLOPT_CONNECTTIMEOUT, और भी set_time_limit() स्क्रिप्ट ही (जो ठीक काम करता है) के लिए निर्धारित करने की कोशिश की, लेकिन कुछ भी नहीं बदल गया - अभी भी समय समाप्ति।

कर्ल कोड इस तरह दिखता है:

set_time_limit(1000); 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0); 
curl_setopt($curl, CURLOPT_TIMEOUT, 300); 
$xml = curl_exec($curl); 

कोई भी किसी भी विचारों है?

+0

आप सर्वर सेटिंग से स्क्रिप्ट समय निष्पादन सीमा बढ़ाने के लिए की जरूरत है। –

+0

आप किस प्रकार का टाइमआउट प्राप्त कर रहे हैं और आप उसे कैसे जानते हैं? कृपया विवरण प्रदान करें – Ranty

+0

phpinfo() के अनुसार निष्पादन समय set_time_limit() द्वारा ओवरराइड किया गया है, लेकिन यदि यह नहीं है - डिफ़ॉल्ट रूप से यह 180 सेकंड पर सेट हो गया है, जो स्वयं ही पर्याप्त है। – user976258

उत्तर

1

कोशिश मेरा मानना ​​है कि आप php.ini जो डिफ़ॉल्ट रूप से 60 सेकंड है में default_socket_timeout मार जा सकता है।

बदलने का प्रयास करें और देखें कि यह काम करता है या नहीं। यदि नहीं, तो इसके बजाय इसे आजमाएं।

$xml = file_get_contents($url); 

ऐसा रैपर जिसे आप यहां के बारे में पढ़ सकते हैं का उपयोग करेगा: http://php.net/manual/en/wrappers.php

और आप यह भी सुनिश्चित करना है कि file_get_contents द्वारा उपयोग के लिए आवश्यक रैपर (php.ini में सक्षम होते हैं को आमतौर पर सक्षम किया जाता है की आवश्यकता होगी तो आपको ठीक होना चाहिए, लेकिन सुनिश्चित करने के लिए बस जांचें)।

कि का उपयोग करते हुए समय समाप्त करता है, तो समय समाप्ति कर्ल द्वारा लागू की जाती आप अनुभव कर रहे बाईपास और कुछ और जो मैं लगता है कि आपके समस्या हो सकती है करने के लिए 60 सेकंड से php.ini में default_socket_timeout समायोजित करने के लिए कर सकते हैं याद

INI सेटिंग में बदलाव करने

http://php.net/manual/en/filesystem.configuration.php

+0

@ user1834735, @VBAssassin क्षमा करें, क्या आपका मतलब 'file_get_contents() 'है? क्योंकि मुझे 'get_file_content()' के नाम से कोई फ़ंक्शन नहीं पता है और मेरा Google उन्हें या तो नहीं जानता है। और 'file_get_contents() 'चाल नहीं करेगा। अधिकांश कार्यालयों के साथ कई घंटे-दिमागी तूफान के बाद हम निष्कर्ष निकाला है कि यह समस्या अपाचे कॉन्फ़िगरेशन, php.ini निर्देशों और दुर्भाग्य से अधिक दुर्लभ संयोजन है इसलिए हम इस समय पर्ल के साथ जा रहे हैं और मैं बंद कर रहा हूं प्रश्न। लेकिन वैसे भी आप सभी के लिए धन्यवाद, आप सभी वास्तव में वास्तव में सहायक थे। – user976258

+0

पर्ल? आपका मतलब पर्ल है? ;) टाइपो को सही किया। "अधिकांश कार्यालयों के साथ कई घंटे-मस्तिष्क के बाद" वास्तव में?इस तरह कुछ खत्म हो गया? :/क्या कोई वरिष्ठ PHP डेवलपर नहीं है क्योंकि एक वरिष्ठ को इस तरह की समस्या को देखने के लिए सभी स्थानों को जाना चाहिए था। शुभकामनाएँ :) – VBAssassin

+0

हाँ, पर्ल, महोदया बुरा। और हाँ, वास्तव में, इस तरह कुछ पर। सबसे पहले, हमारे पास वास्तव में एक वरिष्ठ PHP डेवलपर नहीं है - वास्तव में - और दूसरा, यह बहुत ही उबाऊ दिन था इसलिए यह हम सभी के लिए मनोरंजक था :) वैसे भी, आपको भी शुभकामनाएं। – user976258

0

क्या यूआरएल एक अनुरोध है? यदि ऐसा है तो

$xml = get_file_content($url); 
+0

php – Piero