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)