आपको प्रगति समारोह को परिभाषित कर सकते हैं:
curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, 'my_progress_handler');
कॉलबैक फ़ंक्शन जहां कॉलबैक फ़ंक्शन तीन पैरामीटर लेता है का नाम है। पहला कर्ल संसाधन है, दूसरा फ़ाइल-डिस्क्रिप्टर संसाधन है, और तीसरा लंबाई है। डेटा युक्त स्ट्रिंग लौटें।
अधिक जानकारी के लिए, here देखें।
ध्यान दें: This comment PHP के स्वयं के फ़ंक्शन हस्ताक्षर पर विवाद करता है।
आप exec()
का उपयोग नहीं कर सकते हैं, क्योंकि यह एक अवरुद्ध कार्य है। यह तब तक इंतजार करेगा जब तक कि कार्यक्रम समाप्त नहीं हो जाता है।
संपादित करें: ओह, मुझे लगता है कि आप एम्परसेंड का इस्तेमाल किया है, कोई बात नहीं
क्या आप सकता है उपयोग popen()
है, लेकिन जब तक कर्ल प्रगति outputting का एक अच्छा तरीका है, इस सुंदर होने के लिए नहीं जा रहा है।
मैं -#
को curl
पर पैरामीटर के रूप में पास करने का सुझाव दूंगा, इस तरह आप आउटपुट स्ट्रीम से अच्छी तरह से प्रगति को पकड़ सकते हैं।
लेकिन क्या कर्ल कमांड के लिए यह काम निष्पादन के माध्यम से असीमित रूप से कहा जाता है? – Nathan
एक्सेक कमांड का ब्लॉक नहीं करेगा और साथ ही नौकरी के रूप में चलाया जाएगा। हालांकि, आपको कोई आउटपुट नहीं मिलेगा। – datasage
नहीं, यह 'curl_init() 'और' curl_exec() 'के माध्यम से काम करेगा। @ डेटासेट: हाँ, मैंने अभी देखा और सही किया कि मेरे अंतिम संपादन में। लेकिन फिर भी, 'popen() 'या' proc_open() 'सुंदर होने जा रहा है, क्योंकि आप आउटस्ट्रीम स्ट्रीम को सीधे संभालते हैं। – phant0m