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

 更新时间:2016年07月10日 00:24:02   作者:ricky1217  
这篇文章主要介绍了php使用escapeshellarg时中文被过滤的解决方法,测试后发现问题的原因是shell和apache php-cgi的运行环境不同引起的,需要的朋友可以参考下

本文分析了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 empty(),isset(),is_null()的实例测试详解

    深入PHP empty(),isset(),is_null()的实例测试详解

    本篇文章是对PHP empty(),isset(),is_null()的实例测试进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)

    PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)

    这篇文章主要介绍了PHP入门教程之数组用法,结合大量实例总结分析了php关于数组的创建、打印、遍历、获取、排序、插入、删除等常见操作技巧,需要的朋友可以参考下
    2016-09-09
  • PHP中array_slice函数用法实例详解

    PHP中array_slice函数用法实例详解

    这篇文章主要介绍了PHP中array_slice函数用法,以实例形式详细分析了array_slice函数的具体含义及使用技巧,并以分页方法为例给出了具体的应用实例,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • PHP实现合并两个有序数组的方法分析

    PHP实现合并两个有序数组的方法分析

    这篇文章主要介绍了PHP实现合并两个有序数组的方法,结合实例形式分析了php针对数组的合并、遍历、排序、去重等常见操作技巧,需要的朋友可以参考下
    2017-12-12
  • php图形jpgraph操作实例分析

    php图形jpgraph操作实例分析

    这篇文章主要介绍了php图形jpgraph操作,结合具体实例形式分析了php基于jpgraph图形库实现图形绘制的相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • PHP使用Redis长连接的方法详解

    PHP使用Redis长连接的方法详解

    这篇文章主要介绍了PHP使用Redis长连接的方法,结合实例形式详细分析php操作redis长连接的使用方法及相关注意事项,需要的朋友可以参考下
    2018-02-02
  • php_screw 1.5:php加密: 安装与使用详解

    php_screw 1.5:php加密: 安装与使用详解

    本篇文章是对php_screw 1.5:php加密: 安装与使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php使用parse_str实现查询字符串解析到变量中的方法

    php使用parse_str实现查询字符串解析到变量中的方法

    这篇文章主要介绍了php使用parse_str实现查询字符串解析到变量中的方法,较为详细的分析了parse_str()函数的功能及字符串解析为变量的具体用法,并总结了使用中的相关注意事项,需要的朋友可以参考下
    2017-02-02
  • PHP程序员必须知道的两种日志实例分析

    PHP程序员必须知道的两种日志实例分析

    这篇文章主要介绍了PHP程序员必须知道的两种日志,结合实例形式分析了php-fpm 慢日志及php-error 错误日志相关原理与使用技巧,需要的朋友可以参考下
    2020-05-05
  • 【CLI】利用Curl下载文件实时进度条显示的实现

    【CLI】利用Curl下载文件实时进度条显示的实现

    这篇文章主要给大家介绍了关于【CLI】利用Curl下载文件实时进度条显示的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03

最新评论