当前位置: 首页 > 编程笔记 >

php使用escapeshellarg时中文被过滤的解决方法

楚浩然
2023-03-14
本文向大家介绍php使用escapeshellarg时中文被过滤的解决方法,包括了php使用escapeshellarg时中文被过滤的解决方法的使用技巧和注意事项,需要的朋友参考一下

本文分析了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使用json_encode函数时不转义中文的解决方法,包括了PHP使用json_encode函数时不转义中文的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP使用json_encode函数时不转义中文的解决方法。分享给大家供大家参考。具体方法如下: json_encode函数对于gbk中的中文字符是不会转换的或直接转换成空格了,本文就来给各位整理一个关于j

  • 问题内容: 是最新的CSS功能,现代浏览器(至少从2016年7月1日起)尚不可用。 Chrome 51 通过实验性Web平台标志提供支持。 Safari 9.1支持带前缀 Firefox 47不支持 处于这种无法使用的状态,我想知道是否存在任何其他方法来获得相同的结果。 也欢迎针对,,…的JS解决方法 可以通过跟踪的发展 问题答案: 从Chrome M76开始,背景音乐滤镜现已出厂,没有前缀,并且

  • 本文向大家介绍php使用iconv中文截断问题的解决方法,包括了php使用iconv中文截断问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php使用iconv中文截断问题的解决方法。分享给大家供大家参考。具体分析如下: 今天做了一个采集程序,原理很简单,使用curl方法把对方页面的html获取分析,然后正则提取需要的数据并保存在数据库。 由于对方页面是GB2312编码,而本

  • 本文向大家介绍过滤Android工程中多余资源文件的解决方法,包括了过滤Android工程中多余资源文件的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文以实例讲述了过滤Android工程中多余资源文件的解决方法,很有实用价值!具体描述如下: 很多开发人员在Android项目开发过程中经常会遇到这样的情况:界面开发人员发布了一个新版本的资源包,不过有的图片名称改了,有的图片删掉了,可是在实现

  • 本文向大家介绍PHP使用strrev翻转中文乱码问题的解决方法,包括了PHP使用strrev翻转中文乱码问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP使用strrev翻转中文乱码问题的解决方法。分享给大家供大家参考,具体如下: 在用PHP中的strrve翻转中文时,会出现乱码情况 例如: 运行结果为: 解决方法就是自己重写一个cnstrrev的函数 运行结果为: 更多

  • 本文向大家介绍PHP中函数gzuncompress无法使用的解决方法,包括了PHP中函数gzuncompress无法使用的解决方法的使用技巧和注意事项,需要的朋友参考一下 前言 gzuncompress函数不是php自带的系统函数而是一个插件函数了所以要使用 gzuncompress函数我们必须安装一个插件,下面来看看PHP函数gzuncompress无法使用的问题解决办法吧。 一、解决过程 1.