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 模块可用。