PHP编程
Completion requirements
PHP CLI
与普遍看法相反,PHP 不仅仅是一个 Web 服务器语言。PHP 还可以用来创建常规程序,例如 GUI 应用程序、shell 脚本,甚至守护进程等。
好处是,所有(或大部分)常用的 PHP 库都可以在 PHP CLI 程序中使用。例如,MySQL、XML 等,基本上都可以继续使用。
示例 PHP-CLI 程序
以下是一个简单的 PHP-CLI 程序示例:
<?php
print('Hello World');
?>
如果我们将其保存为 helloworld.php
,然后通过以下命令运行这个 PHP CLI 程序:
php helloworld.php
这将输出:
Hello World
PHP 与 PHP CLI 的区别
PHP 和 PHP CLI 之间有一些重要的区别。以下是它们的列表:
- 没有
$_GET
超全局数组。 - 没有
$_POST
超全局数组。 - 没有
$_COOKIE
超全局数组。 - 当你执行
print
时,输出会发送到标准输出,而不是 Web 浏览器。 - 你可以通过
$argv
变量获取命令行参数。 - 你可以通过
$argc
变量获取命令行参数的数量。
使用 argv
和 argc
与许多程序一样,在 PHP 中也需要访问用于调用程序的命令行变量。为此,PHP 提供了两个变量:
-
当
register_globals = on
时,可以使用:$argv
$argc
-
当
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
的第一个元素是程序的名称。)
Last modified: Friday, 10 January 2025, 2:51 AM