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 相关文章推荐
BBS(php & mysql)完整版(七)
Oct 09 PHP
php设计模式 Strategy(策略模式)
Jun 26 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
php中常用的预定义变量小结
May 09 PHP
PHP数据类型的总结分析
Jun 13 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
php数组添加元素方法小结
Dec 20 PHP
joomla组件开发入门教程
May 04 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 09 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
javascript dom 基本操作小结
2010/04/11 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
javascript学习总结之js使用技巧
2015/09/02 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
python网络编程学习笔记(一)
2014/06/09 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
Python循环实现n的全排列功能
2019/09/16 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
好的自荐信包括什么内容
2013/11/07 职场文书
大学校庆策划书
2014/01/31 职场文书
2014信息公开实施方案
2014/02/22 职场文书
三八妇女节慰问信
2015/02/14 职场文书
幸福终点站观后感
2015/06/04 职场文书
Python IO文件管理的具体使用
2022/03/20 Python