php argv 1,PHP $argv仅限于Windows上的9个参数吗?

在Windows 7 32位系统上使用PHP5.5.4 CLI时,发现命令行参数解析存在限制,只能处理8个参数。此问题在PHP5.5.7版本中已得到解决,表明这可能是PHP版本特定的问题。当从PHP安装目录运行脚本时,所有参数都能正确解析,而通过路径找到PHP时会出现参数丢失。进程监视器的跟踪显示,问题可能出在Windows本身,即使在加载PHP.exe之前,传递的参数数量就已经减少。
摘要由CSDN通过智能技术生成

在Win7 32位上的

PHP 5.5.4 CLI中运行以下脚本

php -r "print_r($argv);" 1 2 3 4 5 6 7 8 9 10 11 12 13 14

我可以看到实际上只解析了8个参数:

Array

(

[0] => -

[1] => 1

[2] => 2

[3] => 3

[4] => 4

[5] => 5

[6] => 6

[7] => 7

)

Windows或PHP是否将命令行参数的数量限制为8 /总计9?

更新:

在PHP 5.5.7的同一台PC上按预期工作 – >所以至少在Win7上这是一个特定于PHP的问题.

行为的变化取决于脚本是从php文件夹运行还是通过路径找到php. procmon跟踪似乎表明问题出在Windows上 – 甚至在加载PHP.exe映像之前 – 传递了不同数量的参数:

php.exe Process Start SUCCESS Parent PID: 9088, Command line: "\Program Files\php\php" -r "print_r($argv);" 1 2 3 4 5 6 7, Current directory: C:\

php.exe Process Start SUCCESS Parent PID: 9088, Command line: "\program files\php\php" -r "print_r($argv);" 1 2 3 4 5 6 7 8 9 10 11 12 13 14, Current directory: C:\

php.exe Process Start SUCCESS Parent PID: 9088, Command line: php -r "print_r($argv);" 1 2 3 4 5 6 7 8 9 10 11 12 13 14, Current directory: C:\Program Files\php\

如果不从路径中获取PHP,则所有参数似乎都可用.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值