在我的 PHP 腳本中,我正在使用 popen() 執(zhí)行一個(gè) bash 腳本并輸出響應(yīng)。但是響應(yīng)有不同的編碼,我不知道如何轉(zhuǎn)換它。我試圖將其轉(zhuǎn)換為 utf8 但沒有結(jié)果。還嘗試將語(yǔ)言環(huán)境設(shè)置為 nl_NL.utf8。PHP函數(shù):while (@ ob_end_flush()); // end all output buffers if any$proc = popen("$cmd 2>&1 ; echo Exit status : $?", 'r');$live_output = "";$complete_output = "";while (!feof($proc)){ $live_output = fread($proc, 4096); $complete_output = $complete_output . $live_output; echo "$live_output"; @ flush();}pclose($proc);示例響應(yīng):[2K[1A[2K[G[2K[1A[2K[G? load plugins[2K[1A[2K[Gsuccess load plugins - 0.975 s? load plugins這應(yīng)該只是:success load plugins - 0.975 s? 是一個(gè)正在移動(dòng)的裝載機(jī)。這可能是問題嗎?或者這些字符是線條的顏色代碼?
1 回答

猛跑小豬
TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
那些是ANSI Escape Sequences
,它們不是 bash 命令,而是用于在一行上著色輸出或替換/更新輸出的控制臺(tái)命令。
命令通常會(huì)提供一個(gè)—no-color
標(biāo)志。
此外,還存在用于常見命令的環(huán)境變量:NO_COLOR
. 這是禁用彩色輸出的常用標(biāo)志/變量列表 => https://no-color.org/
否則,您始終可以使用正則表達(dá)式過濾輸出: /(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]/
- 1 回答
- 0 關(guān)注
- 181 瀏覽
添加回答
舉報(bào)
0/150
提交
取消