将参数(文件名)传递给 CLI PHP 脚本

Passing an argument(filename) to a CLI PHP Script

我想在 PHP 中编写一个脚本来处理文本文件。我知道有几种方法可以做到这一点,但我想这样做的一种方法除外。我希望能够像传统的命令行应用程序一样传递文件名。

例如:

php script.php textfile.txtscript.php textfile.txt

我认为它可以完成,因为您将参数传递给作曲家。我在文档或 Google 中找不到如何做。

有人能指出我正确的方向吗?或者指出一种支持此功能的语言(如果 PHP 不是一个选项,则可能是 Python 或 Groovy)。

在 php 中,如果您从命令行 运行 它,您可以将 php 之后的任何值视为参数。在您的 script.php 中,您可以访问 $argv 数组中的这些参数。

以下将是您的 php 脚本:

<?php
// script.php
print_r($argv);

然后,如果您从命令行执行该文件:

> php script.php foo bar testfile.txt

你会得到如下结果

Array
(
    [0] => script.php
    [1] => foo
    [2] => bar
    [3] => testfile.txt
)

有关详细信息,请参阅 php documentation

这是创建脚本的一种非常简单的方法,但是如果你想创建高级命令行工具程序我推荐使用Symfony2 Console Component

控制台组件将使您能够将每个命令的功能封装在它自己的 class 中。然后您可以创建一个简单的 "console" 文件,该文件将能够执行这些命令中的任何一个。看看一个简单的示例应用程序 here.