मैं निम्नलिखित कोड है:सिम्फनी प्रक्रिया से vi कैसे चलाएं?
$process = new Process('vi'); try { $process->setPty(true); $process->mustRun(function ($type, $buffer) { echo $buffer; }); //echo $process->getOutput(); } catch (ProcessFailedException $e) { echo $e->getMessage(); }
हालांकि, यह निम्नलिखित जानकारी के साथ मेरे लिए मर जाता है:
The command "vi" failed. Exit Code: 1(General error) Working directory: [path] Output: ================ Vim: Error reading input, exiting... Vim: Finished. Error Output: ================ Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal
अद्यतन
लगता है यह कुछ लोगों के लिए स्पष्ट नहीं था कि मैं क्या मैं करने जा रहा हूँ। में समझा दूंगा। यह स्क्रिप्ट कंसोल में चल रही है। वही बात पासस्थु के माध्यम से काम करती है (हालांकि विम अभी भी आउटपुट के बारे में चेतावनी देता है)। मैं एक इंटरैक्टिव प्रक्रिया चाहता हूं जो उपयोगकर्ताओं को कहीं भी भेजने से पहले कुछ फाइल संशोधित करने की अनुमति देगी। मैं अपने स्वयं के संपादक को लागू नहीं करना चाहता हूं और इसलिए मैं उन्हें वीआई का उपयोग करना चाहता हूं। vi मेरे सर्वर पर उपलब्ध है (यह मेरे द्वारा प्रदत्त आउटपुट से स्पष्ट रूप से दिखाई देता है)।
ठीक है, आप सुनिश्चित रूप से php के माध्यम से vi निष्पादित कर सकते हैं कर रहे हैं? (कम से कम यदि आप लिनक्स टेक्स्ट एडिटर के बारे में बात कर रहे हैं) – Epodax
मुझे यकीन है। Passthru() का उपयोग करके इसे निष्पादित करना संभव है। मेरा लक्ष्य एक इंटरैक्टिव प्रक्रिया चलाने के लिए है जिसमें उपयोगकर्ता को एक फ़ाइल को संशोधित करने की संभावना दी जाएगी जिसे उसके संशोधनों के बाद कहीं भेजा जाएगा। –