PHP 程式設計/PHP CLI
外觀
< PHP 程式設計
(重定向自 PHP 程式設計/CLI)與普遍認知不同,PHP 不僅僅是一種 Web 伺服器語言。PHP 也可用於建立常規程式。PHP 可用於建立 GUI 應用程式、Shell 指令碼,甚至守護程序等等。
好處是,所有(或大多數)常用的 PHP 庫也適用於你的 PHP CLI 程式。MySQL、XML 等,都(或大部分)可用。
以下是一個示例 PHP-CLI 程式
<?php print('Hello World'); ?>
如果我們將其儲存為 "helloworld.php",那麼我們可以透過以下命令執行此 PHP CLI 程式
php helloworld.php
這將生成以下輸出
Hello World
伺服器端PHP 和 PHP CLI 之間存在一些重要區別。以下是它們的列表
- 沒有
$_GET超級全域性陣列。 - 沒有
$_POST超級全域性陣列。 - 沒有
$_COOKIE超級全域性陣列。 - 當執行列印時,輸出將轉到標準輸出,而不是 Web 瀏覽器。
- 你可以透過
$argv變數獲取命令列引數。 - 你可以透過
$argc變數獲取命令列引數的數量。
與許多程式一樣,需要訪問用於呼叫程式的命令列變數。在 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 的第一個元素是程式的名稱。)