PHP -

2013-02-26 110 views
15

स्क्रीन पर शेल त्रुटियों को प्रतिबिंबित करने के लिए कैसे पहली बार मैं shell_exec() का उपयोग करने की प्रक्रिया में हूं। मैं ffmpeg खोल स्क्रिप्ट का उपयोग कर अपने सर्वर पर कुछ वीडियो फ़ाइलों को बदलने की कोशिश कर रहा हूं।PHP -

जब मैं ब्राउज़र में नीचे दिए गए कोड है, यह रिटर्न शून्य:

> ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4

मैं वापस एक पूरी लोड मिलती है:

var_dump(shell_exec("ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4")); 

हालांकि जब मैं अपने टर्मिनल में बराबर कोड को चलाने उपयोगी जानकारी जो एक त्रुटि में समाप्त होती है "At least one output file must be specified"

यह जानकारी मेरी PHP स्क्रिप्ट पर वापस क्यों नहीं जा रही है ओ मैं इसे गूंज सकता हूँ?

+3

त्रुटि संदेश को मानक आउटपुट – koopajah

उत्तर

33

त्रुटि डेटा लक्ष्य प्रोग्राम की STDERR स्ट्रीम से आउटपुट है।

var_dump(shell_exec("ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4 2>&1")); 

तुम भी लेने के लिए चाहते हो सकता है: आप धारा है कि आप वर्तमान में देख रहे हैं आदेश है, जो STDOUT को STDERR रीडायरेक्ट करेगा करने के लिए 2>&1 जोड़कर shell_exec() से सामान्य लौटे स्ट्रिंग के माध्यम से त्रुटि डेटा तक पहुँच प्राप्त कर सकते हैं proc_open() पर एक नज़र डालें जो आपको STDIN, STDOUT और STDERR तक पहुंचने की अनुमति देगा, जो तीन अलग-अलग धाराओं के रूप में है, जो लक्ष्य कार्यक्रम पर अधिक तेज़ अनाज नियंत्रण प्रदान कर सकता है और आप इसे इनपुट और आउटपुट को कैसे संभालेंगे, जिसमें किसी भी और सभी को रीडायरेक्ट करना शामिल है यदि वांछित है तो उनमें से सीधे एक लॉग फ़ाइल में। सावधान रहें, हालांकि यह कई नुकसान और ट्रिपिंग खतरों के साथ एक और अधिक जटिल तंत्र है।

मानक धाराओं पर अधिक जानकारी here मिल सकती है।

+0

आह पर रीडायरेक्ट करने के लिए आप आदेश के अंत में '2> और 1' को जोड़ने का प्रयास कर सकते हैं! वहाँ है :) – Ash

+0

ठीक है, मेरे दिन बचाया ... एक upvote और एक कुकी है! – Ikari

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

  • कोई संबंधित समस्या नहीं^_^