jesobreira / cmdline
PHP 命令行参数解析器
1.0.0
2020-04-30 02:14 UTC
This package is auto-updated.
Last update: 2024-09-29 06:02:41 UTC
README
一个易于解析命令行参数的库。
运行以下命令进行安装
composer require jesobreira/cmdline
它可以获取
简单的键/值
示例。以下代码
use CmdLine\Parser as cmdline;
echo cmdline::get('color');
如果您以以下任何一种方式运行脚本,将返回 "white"(引号是可选的,但如果您要使用空格,则必须使用引号)
- php script.php -color "white"
- php script.php --color white
- php script.php /color white
存在性
示例。以下代码
if (cmdline::keyexists('givemecoffee')) {
echo "You want coffee.";
} else {
echo "You do not want coffee.";
}
如果您运行以下任何一种,将返回 "You want coffee."
- php script.php -givemecoffee
- php script.php --givemecoffee
- php script.php /givemecoffee
标志
示例。此脚本
echo "You want: ";
if (cmdline::flagenabled('C')) echo "coffee ";
if (cmdline::flagenabled('B')) echo "beer ";
echo " and you do not want: ";
if (cmdline::flagdisabled('V')) echo "vodka ";
if (cmdline::flagdisabled('W')) echo "wine ";
echo " but you did not tell me if you want: ";
if (!cmdline::flagexists('S')) echo "soda ";
if (!cmdline::flagexists('J')) echo "juice ";
如果您运行
- php script.php +CB -VW
通过索引获取参数
您也可以通过此函数读取 process.argv
(基于0的索引)。优点是如果索引不存在(用户未指定参数),它不会抛出错误。它只会返回您在第二个函数参数中指定的值。
// 0 = php executable; 1 = php script; 2... = args
$first_argument = cmdline::getvalbyindex(2, false);
if (!$first_argument) {
echo "You did not specify any argument.";
} else {
echo "First argument is: " . $first_argument;
}
注意: getvalbyindex
方法的第二个值可以是一个整数、一个字符串、一个布尔值、一个数组或任何您希望它在 process.argv
对象中索引不存在时返回的值。
此参数也在 get
方法中可用,也作为第二个函数参数。在这种情况下,如果键未找到,它将返回此值。例如
$user_wants = cmdline::get('iwant', 'nothing');
echo "You want" . $user_wants;
因此,如果您运行
- php script.php /iwant water
它将返回 "You want water"。但如果您只运行
- php script.php
它将返回 "You want nothing"。请注意,由于这两个是该模块中旨在返回字符串的唯一方法,因此第二个参数对其他函数不可用。默认情况下,如果您未指定任何回退值,则在找不到所需值时返回 null。
此外,请注意,此模块不能解析 key=value 格式的参数。例如
- php script.php key=value 它将不起作用
其他端口
此库是从AutoIt3 UDF 端口移植的,该UDF也作为NodeJS 模块可用。