shell輸出的有中文,則php得到的中文返回結果為亂碼,下面有個不錯的解決方法,大家可以參考下
如果需要php執行一些shell命令,查看顯示結果的話,如果shell輸出的有中文,則php得到的中文返回結果可能類似是 “?230?180?187?229?138?168” 的字符串。那麼需要這個函數轉譯: 代碼如下: //這個函數接收的都是路徑,所以判斷了文件擴展名 function shell2txt($a){ $ary = explode('/', $a); foreach($ary as $k => $v){ if(strpos($v, '?') !== false){ $_ary = explode('?', $v); foreach($_ary as $_k=>$_v){ if($_v == '') continue; //判斷是否有文件擴展名 $end = ''; if(strpos($_v, '.') !== false){ $end = substr($_v, strpos($_v, '.')); } $_ary[$_k] = dechex($_v).$end; } $ary[$k] = implode('%', $_ary); } } $a = implode('/', $ary); return urldecode($a); }