跳轉到內容

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


華夏公益教科書