php使用escapeshellarg时中文被过滤的解决方法


Posted in PHP onJuly 10, 2016

本文分析了php使用escapeshellarg时中文被过滤的解决方法。分享给大家供大家参考。具体如下:

一、问题:

同样的代码,发现通过 localhost/index.php 访问,和在 shell 中通过 php ./index.php 运行?果却不一样。

在程序中需要通过 shell_exec 来执行一个 linux 程序,而它的输入来自 echo ,即:

shell_exec('echo '.escapeshellarg($str).' | some_cmd 2>&1');

二、解决方法:

而这个 $str 中可能包含中文的。一开始我还以为是 some_cmd 自己把中文滤掉,后来发现是 escapeshellarg 的问题。
貌似出现这个问题的不多,经过查询与测试发现原来是 shell 和 apache php-cgi 的运行环境不同引起的。
在 php 中加入:

setlocale(LC_CTYPE, "UTF8", "en_US.UTF-8");

就正常了!

希望本文所述对大家php程序设计有所帮助。

PHP 相关文章推荐
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
PHP限制HTML内容中图片必须是本站的方法
Jun 16 PHP
php文件扩展名判断及获取文件扩展名的N种方法
Sep 12 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
php UNIX时间戳用法详解
Feb 16 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 PHP
[原创]smarty简单模板变量输出方法
Jul 09 #PHP
[原创]php简单防盗链验证实现方法
Jul 09 #PHP
[原创]php简单隔行变色功能实现代码
Jul 09 #PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 #PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 #PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 #PHP
PHP编程之设置apache虚拟目录
Jul 08 #PHP
You might like
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
2017/05/20 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
再探JavaScript作用域
2014/09/24 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python实现简单的可逆加密程序实例
2015/03/05 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
文秘自荐信
2013/10/20 职场文书
财务会计实习报告体会
2013/12/20 职场文书
优秀员工年终发言演讲稿
2014/01/01 职场文书
网络编辑求职信
2014/04/30 职场文书
广播节目策划方案
2014/05/23 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
预备党员表决心的话
2015/09/22 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS