PHP CLI

也可以使用 CLI(命令列介面)直接從命令列執行 PHP。

除了標準輸入和輸出方面的一些差異外,CLI 與來自 Web 伺服器的 PHP 基本相同。

觸發

PHP CLI 允許四種方式來執行 PHP 程式碼:

  1. 標準輸入。執行不帶任何引數的 php 命令,但將 PHP 程式碼插入其中:

    echo '<?php echo "Hello world!";' | php
    
  2. 檔名作為引數。執行 php 命令,將 PHP 原始檔的名稱作為第一個引數:

    php hello_world.php
    
  3. 程式碼作為引數。使用 php 命令中的 -r 選項,然後執行程式碼。<?php open 標籤不是必需的,因為引數中的所有內容都被視為 PHP 程式碼:

    php -r 'echo "Hello world!";'
    
  4. 互動式 shell。使用 php 命令中的 -a 選項啟動互動式 shell。然後,鍵入(或貼上)PHP 程式碼並點選 return :

    $ php -a
    Interactive mode enabled
    php > echo "Hello world!";
    Hello world!
    

輸出

在 Web 伺服器 PHP 中生成 HTML 輸出的所有函式或控制元件都可用於在 stdout 流(檔案描述符 1)中生成輸出,並且在 Web 伺服器 PHP 中的錯誤日誌中生成輸出的所有操作都將在 stderr 流中生成輸出(檔案描述符 2)。

Example.php

<?php
echo "Stdout 1\n";
trigger_error("Stderr 2\n");
print_r("Stdout 3\n");
fwrite(STDERR, "Stderr 4\n");
throw new RuntimeException("Stderr 5\n");
?>
Stdout 6

Shell 命令列

$ php Example.php 2>stderr.log >stdout.log;\
> echo STDOUT; cat stdout.log; echo;\
> echo STDERR; cat stderr.log\

STDOUT
Stdout 1
Stdout 3

STDERR
Stderr 4
PHP Notice:  Stderr 2
 in /Example.php on line 3
PHP Fatal error:  Uncaught RuntimeException: Stderr 5
 in /Example.php:6
Stack trace:
#0 {main}
  thrown in /Example.php on line 6

輸入

請參閱: 命令列介面(CLI)