我有一个php文件,我从命令行运行。此脚本有一个必需的未命名元素(file.xml),但允许某些选项(例如--conf LocalSettings.php)。
php importDump.php --conf LocalSettings.php file.xml
我的问题是我的选项之一需要传递设置(setting1)。这适用于大多数脚本,例如:
php runJobs.php --conf LocalSettings.php setting1
但不是那些拥有必需的未命名元素的元素,例如:
php importDump.php --conf LocalSettings.php setting1 file.xml
我尝试将部分放在引号中,因此它被视为一段代码,但它不会起作用。
php importDump.php --conf "LocalSettings.php setting1" file.xml
我可以修改的唯一内容是LocalSettings.php脚本以及我如何在命令行上调用内容。
如何使用此命令处理需要未命名部分的命令(importDump.php)和不需要命令的部分(runJobs.php)?
作为参考,我使用$argv[3]
在LocalSettings.php脚本中获取设置输入。
答案 0 :(得分:0)
不确定为什么引用引号并不适合你。
$ php arg_test.php --conf "test foo" file.xml
array(4) {
[0]=>
string(12) "arg_test.php"
[1]=>
string(6) "--conf"
[2]=>
string(8) "test foo"
[3]=>
string(8) "file.xml"
}
arg_test.php只是<?php var_dump($argv)
。
但是,请考虑使用Symfony Console或其他一些使CLI使用更容易的库。