跳轉到內容

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 的第一個元素是程式的名稱。)


華夏公益教科書