php 中 escapeshellarg 中文被过滤
来源:互联网 发布:nginx init worker 编辑:程序博客网 时间:2024/06/05 18:25
同样的代码,发现通过 localhost/index.php 访问,和在 shell 中通过 php ./index.php 运行結果却不一样。
在程序中需要通过 shell_exec 来执行一个 linux 程序,而它的输入来自 echo ,即:
shell_exec('echo '.escapeshellarg($str).' | some_cmd 2>&1');
而这个 $str 中可能包含中文的。一开始我还以为是 some_cmd 自己把中文滤掉,后来发现是 escapeshellarg 的问题。
貌似出现这个问题的不多,好不容易才搜到一篇文章:http://byreach.com/m/node/1439。原来是 shell 和 apache php-cgi 的运行环境不同引起的。
在 php 中加入:
setlocale(LC_CTYPE, "UTF8", "en_US.UTF-8");
正常了!
- php 中 escapeshellarg 中文被过滤
- PHP正则过滤中文
- php过滤字符串中重复的字符(包含中文)
- php 过滤英文标点符号 过滤中文标点符号
- PHP过滤非中文字符
- PHP中HTML标签过滤
- php中过滤字符串代码
- PHP中过滤html标签
- PHP中过滤 特殊字符
- php表单中汉字被过滤,无法上传mysql数据库
- 利用PHP扩展trie_filter做中文敏感词过滤
- php过滤所有英文中文的标点符号代码
- PHP中强大的过滤验证函数
- PHP中常用数据过滤方法
- php中filter_var后面的过滤选项
- PHP 字符串中特殊符号的过滤
- php中filter函数用来验证、过滤
- PHP中HTML标签过滤技巧
- WEB测试要点归纳
- linux2.6内核initrd机制解析
- 区间图着色问题(贪心算法)C++实现
- 转别人的求解对称日的程序
- 用友ERP—U8.72软件配置补充说明
- php 中 escapeshellarg 中文被过滤
- 解决双网卡机器同时访问内外网的问题
- 生成全排列
- apmserv 5.2.6 修改phpmyadmin的帐户密码问题
- Unable to connect to PostgreSQL server: FATAL: missing or erroneous pg_hba.conf file\nHINT: See se
- 快捷键汇总
- 利用iCloud在多个Mac电脑间传输文件
- 发布带GigEVision的程序
- 我的桌面游戏吧快倒闭了