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与已存在的Java应用程序集成
Oct 09 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
May 17 PHP
php注销代码(session注销)
May 31 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
CI框架安全类Security.php源码分析
Nov 04 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
php常量详细解析
Oct 27 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
基于php判断客户端类型
Oct 14 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 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和ACCESS写聊天室(十)
2006/10/09 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
Python决策树分类算法学习
2017/12/22 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
浅谈Python中的bs4基础
2018/10/21 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
绩效工资分配方案
2014/01/18 职场文书
双拥工作宣传标语
2014/06/26 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
解除劳动合同协议书
2014/09/17 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
病危通知单
2015/04/17 职场文书
教师节主题班会方案
2015/08/17 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang