当前位置:首页 > 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($_v, strpos($_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

分享到: