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

2015-01-24信息快讯网

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); 
} 
最常用的8款PHP调试工具
一个不易被发现的PHP后门代码解析
linux下使用crontab实现定时PHP计划任务失败的原因分析
php操作redis中的hash和zset类型数据的方法和代码例子
采用memcache在web集群中实现session的同步会话
30个php操作redis常用方法代码例子
PHP关于htmlspecialchars、strip_tags、addslashes的解释
PHP+Memcache实现wordpress访问总数统计(非插件)
php+memcache实现的网站在线人数统计代码
PHP反射使用实例和PHP反射API的中文说明
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
修改ThinkPHP缓存为Memcache的方法
PHPAnalysis中文分词类详解
让CodeIgniter的ellipsize()支持中文截断的方法
CodeIgniter输出中文乱码的两种解决办法
用PHP和Shell写Hadoop的MapReduce程序
php 生成短网址原理及代码
php弹出对话框实现重定向代码
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
简单的php缓存类分享 php缓存机制
一组PHP可逆加密解密算法实例代码
discuz加密解密函数使用方法和中文注释
php加密算法之实现可逆加密算法和解密分享
修改apache配置文件去除thinkphp url中的index.php
PHP获取php,mysql,apche的版本信息示例代码
php中文乱码怎么办如何让浏览器自动识别utf-8
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
memcache命令启动参数中文解释
php中文验证码实现示例分享
php截取中文字符串不乱码的方法
php实现memcache缓存示例讲解
php使用exec shell命令注入的方法讲解
PHP连接MySQL查询结果中文显示乱码解决方法
php获取目录所有文件并将结果保存到数组(实例)
PHP设置一边执行一边输出结果的代码
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
解析php中如何直接执行SHELL
©2014-2024 dbsqp.com