PHP $ argv限于Windows上的9个参数吗?

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

概述PHP $ argv限于Windows上的9个参数吗?

在Win7 32bit的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个参数被parsing:

Array ( [0] => - [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 )

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

更新:

OpenSSL 1.0.2和错误“SSL_CTX_new:库没有密码”

我如何从堆栈中find代码的崩溃行?

获取安装的驱动器的networkingpath,窗口

用“DialogBox”以外的其他方法打开一个窗口

使用与C ++ D'tor重叠的I / O冲突

按照预期在同一台PC上使用PHP 5.5.7 – >至less在Win7上,这是一个PHP特定的问题。

行为会根据脚本是从PHP文件夹运行还是通过pathfindPHP而变化。 一个procmon跟踪似乎表明,问题是与windows相同 – 甚至在PHP.exe映像被加载之前 – 通过了不同数量的参数:

PHP.exe Process Start SUCCESS Parent PID: 9088,Command line: "Program filesPHPPHP" -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 filesPHPPHP" -r "print_r($argv);" 1 2 3 4 5 6 7 8 9 10 11 12 13 14,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 filesPHP

所有参数只有在不从path中取得PHP的情况下才可用。

testing鼠标指针在哪个屏幕上

如果应用程序位于特定的目录中,则拖放不起作用

复制保存在内存映射文件中的数组的一部分

Python的os.mknod在windows中

我怎样才能打开窗户可以打开的区域? C#

在某些windows环境下。 要在windows XP上获得超过9个参数,您需要“移动”批处理文件中的参数。

在XP以上的版本中我找不到任何对此命令的引用,所以可能这个问题会在windows的更高版本中消失。

对PHP.NET的评论涵盖在这里: http ://www.PHP.net/manual/en/features.commandline.PHP#56846

要将多于9个参数传递给windows上的PHP脚本,可以在批处理文件中使用“shift”命令。 使用'shift'后,%1变成%0,%2变成%1等等 – 所以你可以读取参数10等

下面是一个例子 – 希望可以使用的批处理文件:

foo.bat:

@echo off :init_arg set args= :get_arg shift if "%0"=="" goto :finish_arg set args=%args% %0 goto :get_arg :finish_arg set PHP=C:pathtoPHP.exe set ini=C:pathtoPHP.ini %PHP% -c %ini% foo.PHP %args%

命令行上的用法:foo -1 -2 -3 -4 -5 -6 -7 -8 -9 -foo -bar

print_r($ argv)会给你所有传入的参数。

总结

以上是内存溢出为你收集整理的PHP $ argv限于Windows上的9个参数吗?全部内容,希望文章能够帮你解决PHP $ argv限于Windows上的9个参数吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1285694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存