跳转到内容

PHP 编程/PHP CLI

来自维基教科书,自由的教科书
(重定向自 PHP 编程/CLI)

与普遍认知不同,PHP 不仅仅是一种 Web 服务器语言。PHP 也可用于创建常规程序。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 之间存在一些重要区别。以下是它们的列表

  1. 没有 $_GET 超级全局数组。
  2. 没有 $_POST 超级全局数组。
  3. 没有 $_COOKIE 超级全局数组。
  4. 当执行打印时,输出将转到标准输出,而不是 Web 浏览器。
  5. 你可以通过 $argv 变量获取命令行参数
  6. 你可以通过 $argc 变量获取命令行参数的数量

使用 argvargc

[编辑 | 编辑源代码]

与许多程序一样,需要访问用于调用程序的命令行变量。在 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 的第一个元素是程序的名称。)


华夏公益教科书