将参数(文件名)传递给 CLI PHP 脚本
Passing an argument(filename) to a CLI PHP Script
我想在 PHP 中编写一个脚本来处理文本文件。我知道有几种方法可以做到这一点,但我想这样做的一种方法除外。我希望能够像传统的命令行应用程序一样传递文件名。
例如:
php script.php textfile.txt
或
script.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.
我想在 PHP 中编写一个脚本来处理文本文件。我知道有几种方法可以做到这一点,但我想这样做的一种方法除外。我希望能够像传统的命令行应用程序一样传递文件名。
例如:
php script.php textfile.txt
或
script.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.