python - Real time update of terminal in php (popen or proc_open) -


उद्देश्य: टर्मिनल से नई लाइन ब्रेक के बिना वास्तविक समय अपडेट प्राप्त करना वर्तमान में मैं इसका उपयोग कर रहा हूं

  हैडर ('सामग्री-एन्कोडिंग: कोई नहीं;'); set_time_limit (0); $ संभाल = पॉपन ("अजगर-एम यूट्यूब_डीएल https://www.youtube.com/watch?v=S2JOicnUh1s", "r"); अगर (ob_get_level () == 0) ob_start (); जबकि (! फीफ ($ संभाल)) {$ बफर = fgets ($ हैंडल); $ बफर = ट्रिम (htmlspecialchars ($ बफर)); गूंज "& lt; पूर्व & gt;"; $ बफर गूंज; Echo str_pad ('', 4096); गूंज "& lt; / pre & gt;"; ob_flush (); फ्लश (); नींद (1); } Pclose ($ हैंडल); ob_end_flush ();   

इस कोड का उत्पादन

 <कोड> [YouTube] S2JOicnUh1s: डाउनलोड कर रहा है वेबपेज [यूट्यूब] S2JOicnUh1s: डाउनलोड कर रहा है वीडियो की जानकारी वेबपेज [डाउनलोड ] 12.82KiB / एस ईटीए 04:20 [डाउनलोड] 38.46KiB / एस ईटीए 01:26 [डाउनलोड] पर 89.74KiB / एस ईटीए 00:37 [3.26MiB के 0.2% पर 3.26MiB के 0.1% पर 3.26MiB की 0.0% डाउनलोड] पर 79.79KiB / एस ईटीए 00:41 [डाउनलोड 3.26MiB के 0.4%] 79.28KiB / एस ईटीए 00:41 पर 3.26MiB के 0.9% ................. ................................... ............... ..................................... [डाउनलोड] 3.26 एमबीबी के 98.1% 72.50 केबी / एस में ईटीए 00:00 [डाउनलोड] 0:45 में 72.66KiB / एस ईटीए 00:00 [डाउनलोड] 3.26MiB की 100% पर 3.26MiB के 100.0%   

यह केवल एक समय में आउटपुट डाउनलोड का अंत (सबसे पहले यह मुझे वास्तविक समय अपडेट दे दिया, केवल एक बार जब मैं ऐसा नहीं जानता हूं)। लेकिन मेरे विंडोज कमांड प्रोटीट में मुझे नई लाइन ब्रेक के बिना एक पंक्ति में प्रतिशत और गति मिल रही है। कि मैं इस कोड

  समारोह निष्पादित ($ cmd, $ stdin = नल) {$ proc = proc_open ($ cmd, सरणी (0 = & gt की कोशिश की है ऐसा करने के लिए, सरणी ( 'पाइप', 'आर'), 1 = & gt; सरणी ( 'पाइप', 'डब्ल्यू'), 2 = & gt; सरणी ( 'पाइप', 'मौ')), $ पाइप); fwrite ($ पाइप [0], $ stdin); fclose ($ पाइप [0]); $ Stdout = stream_get_contents ($ पाइप [1]); fclose ($ पाइप [1]); $ Stderr = stream_get_contents ($ पाइप [2]); fclose ($ पाइप [2]); $ वापसी = proc_close ($ proc); रिटर्न सरणी ('stdout' = & gt; $ stdout, 'stderr' = & gt; $ stderr, 'वापसी' = & gt; $ वापसी); } गूंज '& lt; पूर्व & gt;'; Print_r (निष्पादित करें ('अजगर-एम यूट्यूब_डीएल https://www.youtube.com/watch?v=S2JOicnUh1s')); गूंज & lt; / pre & gt; ';   

और विफल रहे ... ऐसा लगता है कि यह परिणाम खाली

आउटपुट

  सरणी ([stdout] = & Gt; [stderr] = & gt; C: \ Python27 \ python.exe: youtube_dl का नाम नहीं [वापसी] = & gt; 1)   

तो कोई भी इन्हें संशोधित करने के लिए कोई सुझाव प्रदान कर सकता है कोड या नया? धन्यवाद।

यह एक php समस्या नहीं है जैसा कि आप stderr आउटपुट में देख सकते हैं, मॉड्यूल youtube_dl लोड नहीं किया जा सकता है। सबसे अधिक संभावना है, youtube_dl निर्देशिका आपकी नहीं है या तो PYTHONPATH को फैलाने का प्रयास करें या youtube_dl निर्देशिका को अपने में ले जाएं।

Comments

Popular posts from this blog

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -

Matlab transpose a table vector -

c# - Textbox not clickable but editable -