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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
PHP代码优化的53个细节
Mar 03 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 PHP
PHP获取文件的MD5值并判断是否被修改的例子
Jun 19 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
Jul 08 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
php使用parse_url和parse_str解析URL
Feb 22 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 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 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
详解VueJs中的V-bind指令
2018/05/03 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
python实现RSA加密(解密)算法
2016/02/17 Python
Python实现图片转字符画的示例
2017/08/22 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
利用python开发app实战的方法
2019/07/09 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
体育课外活动总结
2014/07/08 职场文书
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
务虚会发言材料
2014/12/25 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
如何使用php生成zip压缩包
2021/04/21 PHP