当前位置:首页 > PHP教程 > php应用 > 列表

解决php接收shell返回的结果中文乱码问题

发布:smiling 来源: PHP粉丝网  添加日期:2020-08-29 19:37:25 浏览: 评论:0 

shell输出的有中文,则php得到的中文返回结果为乱码,下面有个不错的解决方法,大家可以参考下。

如果需要php执行一些shell命令,查看显示结果的话,如果shell输出的有中文,则php得到的中文返回结果可能类似是 “?\230?\180?\187?\229?\138?\168” 的字符串。那么需要这个函数转译: 

  1. //这个函数接收的都是路径,所以判断了文件扩展名  
  2. function shell2txt($a){  
  3. $ary = explode('/'$a);  
  4. foreach($ary as $k => $v){  
  5. if(strpos($v'?\\') !== false){  
  6. $_ary = explode('?\\'$v);  
  7.  
  8. foreach($_ary as $_k=>$_v){  
  9. if($_v == ''continue;  
  10. //判断是否有文件扩展名  
  11. $end = '';  
  12. if(strpos($_v'.') !== false){  
  13. $end = substr($_vstrpos($_v'.'));  
  14. }  
  15. $_ary[$_k] = dechex($_v).$end;  
  16. //phpfensi.com 
  17.  
  18. $ary[$k] = implode('%'$_ary);  
  19. }  
  20. }  
  21.  
  22. $a = implode('/'$ary);  
  23. return urldecode($a);  
  24. }

Tags: php中文乱码 shell

分享到: