在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个参数吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)