PHP 编程/PHP CLI
外观
< PHP 编程
与普遍的看法相反,PHP 不仅仅是一种 Web 服务器语言。PHP 也可以用于创建普通程序。PHP 可用于创建 GUI 应用程序、shell 脚本,甚至守护进程等等。
好处是,所有(或大多数)常用的 PHP 库也适用于您的 PHP CLI 程序。MySQL、XML 等。所有(或大部分)仍然可用。
下面是一个示例 PHP-CLI 程序
<?php print('Hello World'); ?>
如果我们将此保存为“helloworld.php”,那么我们将通过以下命令运行此 PHP CLI 程序
php helloworld.php
这将产生以下输出
Hello World
服务器端 PHP 和 PHP CLI 之间存在一些重要区别。以下列出了这些区别
- 没有
$_GET
超级全局数组。 - 没有
$_POST
超级全局数组。 - 没有
$_COOKIE
超级全局数组。 - 当您执行打印操作时,输出将发送到标准输出,而不是 Web 浏览器。
- 您可以通过
$argv
变量获取命令行参数。 - 您可以通过
$argc
变量获取命令行参数的数量。
与许多程序一样,有必要访问用于调用程序的命令行变量。要在 PHP 中执行此操作,我们有两个变量
在 php.ini 文件中使用 register_globals = on;
时,您可以使用
$argv
$argc
在 php.ini 文件中使用 register_globals = off;
时,您可以使用
$_SERVER['argv']
$_SERVER['argc']
(对于那些了解 Bash、C 或 C++ 编程语言的人来说,他们会发现这两对变量非常熟悉)
下面是一个使用 $argc
和 $argv
变量的程序
<?php
print('ARGC = ' . $argc ."\n\n");
foreach ($argv as $k=>$v) {
print("ARGV[$k] = $v\n");
}
?>
<?php
print('ARGC = ' . $_SERVER['argc'] ."\n\n");
foreach ($_SERVER['argv'] as $k => $v) {
print("ARGV[$k] = $v\n");
}
?>
如果我们将此 PHP 程序保存为“test1.php”,并使用以下命令运行它
php test1.php apple orange banana pineapple
那么我们会得到
ARGC = 5 ARGV[0] = test1.php ARGV[1] = apple ARGV[2] = orange ARGV[3] = banana ARGV[4] = pineapple
(请注意,与 Bash、C 和 C++ 程序一样,$argv
的第一个元素是程序的名称。)