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 Smarty date_format [格式化时间日期]
Mar 15 PHP
PHP文件缓存类示例分享
Jan 30 PHP
PHP的命令行命令使用指南
Aug 18 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
Dec 24 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
php分享朋友圈的实现代码
Feb 18 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 PHP
php 中的信号处理操作实例详解
Mar 04 PHP
PHP开发API接口签名生成及验证操作示例
May 27 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读取RSS feed的代码
2008/08/01 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
js如何获取object类型里的键值
2014/02/18 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
Python中的字典与成员运算符初步探究
2015/10/13 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
Python实现多线程的两种方式分析
2018/08/29 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
Python图片的横坐标汉字实例
2019/12/04 Python
详解django中Template语言
2020/02/22 Python
Hotels.com中国区:好订网
2016/08/18 全球购物
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
房地产出纳岗位职责
2013/12/01 职场文书
教师实习自我鉴定
2013/12/18 职场文书
团队精神的演讲稿
2014/05/14 职场文书
工作检讨书范文
2015/01/23 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
商场广播稿范文
2015/08/19 职场文书
Python基于百度API识别并提取图片中文字
2021/06/27 Python