php的exec命令中关于空格路径的问题
2015-11-11 22:09
691 查看
在PHP编码过程中,有时候会用exec执行第三方程序,其中会遇到路径中带有空格的场景:
$exe_file = "c:/test test/sqlite.exe";
$data_file = "c:/test/data.lst";
exec("\"".$exe_file."\""." \"".$data_file."\"", $output, $ret);
开始执行的时候会报告 c:/test不是有效的程序,经过排查,是exe_file路径中存在空格才导致了这样的问题,于是尝试
整个exec的第一个参数前后再增加一层双引号:
exec("\"\"".$exe_file."\""." \"".$data_file."\"\"", $output, $ret);
执行成功,但是在5.3.27版本运行这样的命令,发现会提示命令执行失败,无法找到可执行的程序之类的,尝试把双引号去掉,再执行,就没有
问题了。
经过在网上搜索发现5.3以及之后解决了”exec的参数中存在空格引发的不能正确执行“的问题,怪不得在自己的开发环境中运行5.3之后的版本进行编码自测的时候,
没有发现测试人员发现的这个问题,因为测试人员运行的真实环境中php的版本是5.3之前的版本。
注:多亏总结,否则也不知道会有5.3这样的分水岭
$exe_file = "c:/test test/sqlite.exe";
$data_file = "c:/test/data.lst";
exec("\"".$exe_file."\""." \"".$data_file."\"", $output, $ret);
开始执行的时候会报告 c:/test不是有效的程序,经过排查,是exe_file路径中存在空格才导致了这样的问题,于是尝试
整个exec的第一个参数前后再增加一层双引号:
exec("\"\"".$exe_file."\""." \"".$data_file."\"\"", $output, $ret);
执行成功,但是在5.3.27版本运行这样的命令,发现会提示命令执行失败,无法找到可执行的程序之类的,尝试把双引号去掉,再执行,就没有
问题了。
经过在网上搜索发现5.3以及之后解决了”exec的参数中存在空格引发的不能正确执行“的问题,怪不得在自己的开发环境中运行5.3之后的版本进行编码自测的时候,
没有发现测试人员发现的这个问题,因为测试人员运行的真实环境中php的版本是5.3之前的版本。
注:多亏总结,否则也不知道会有5.3这样的分水岭
相关文章推荐
- muduo库阅读(37)——Net部分:压缩数据流ZlibOutputStream
- PHP - 防止非法调用页面
- PHP - 代码分离
- php数组转换成js可用的数组的两种方式
- PHP - 设置地址栏小图标
- ubuntu安装php常见错误集锦
- php,js小数取整数函数,丢弃小数部分,向上取整数,四舍五入,向下取整数 ...
- 【php】foreach中使用引用引起的问题
- PHP接口API文档转换SDK【神器】
- PHP 这个周一到周日是几月几号?
- php关联不上mysql解决办法
- PHP(ThinkPHP)学习笔记(一)
- Debian/Ubuntu 三条命令(一键)安装php7
- php面向对象----构造函数和析构函数
- PHP使用方法重载实现动态创建属性的get和set方法
- php的基本语法与字符串与增删改查
- PHP - 操作MySQL数据库
- PHP - MySQL数据库
- PHP - 图像处理
- js+php实现comet(ajax长轮询)推送功能