php exec多条命令怎么拼接_PHP--手摸手,教你撸一个会自动补全的命令行工具1
生活随笔
收集整理的這篇文章主要介紹了
php exec多条命令怎么拼接_PHP--手摸手,教你撸一个会自动补全的命令行工具1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
一次在使用symfony的時候,發現使用命令行的時候有些關鍵字會自動提示。
介紹
隨著laravel,symfony等框架的流行,命令行工具越來越流行,但是很多時候命令太多,根本無法記住所有參數,或者參數太長輸入太不方便。
這時是否也想擁有一個像IDE中的自動補全功能?
手摸手,一起擼一個自動補全工具
獲取命令行字符串
想自動補全,必須獲取命令行輸入的數據,那么如何獲取數據呢?
具體可以參考官方文檔 PHP獲取命令輸入,這里我們使用一種寫法
$c = fread(STDIN, 1);這樣我們就可以獲取每次輸入的按鍵。
獲取單個字符
進行了上面的操作以后,我們已經可以獲取到輸入的內容,但是發現一個問題,我們必須按下回車以后才可以獲取到輸入的內容,即使我們設置了fread最大讀取的長度,那么究竟是什么問題的?
原來Linux終端中,默認是必須按下回車的。那么我們必須關閉這個功能。為了防止我們使用其他軟件出現問題,我們不需要該功能后需要將其關閉。
//執行如下命令后,就可以一個字符一個字符的獲取了$sttyMode = shell_exec('stty -g');shell_exec('stty -icanon -echo');//恢復原來的狀態shell_exec(sprintf('stty %s', $sttyMode));這時,我們在進行測試
$sttyMode = shell_exec('stty -g');shell_exec('stty -icanon -echo');$c = fread(STDIN, 1);var_dump($c);shell_exec(sprintf('stty %s', $sttyMode));簡易自動補全
總結
以上是生活随笔為你收集整理的php exec多条命令怎么拼接_PHP--手摸手,教你撸一个会自动补全的命令行工具1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言程序设计第4版pdf荣政_C语言程
- 下一篇: r语言quantmond_GitHub