跳转到内容

PHP 编程/PHP CLI

来自 Wikibooks,开放世界中的开放书籍

与普遍的看法相反,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 的第一个元素是程序的名称。)


华夏公益教科书