php 命令行cli,PHP 命令行 CLI

显示行号

|

选择喜欢的代码风格

默认

GitHub

Dune

LakeSide

Plateau

Vibrant

Blue

Eighties

Tranquil

PHP 是为开发 Web 应用而创建,不过它的命令行脚本接口(CLI)也非常有用。PHP 命令行编程可以帮你完成自动化的任务,如测试,部署和应用管理。

CLI PHP 编程非常强大,可以直接调用你自己的程序代码而无需创建 Web 图形界面,需要注意的是 不要 把 CLI PHP 脚本放在公开的 web 目录下!

在命令行下运行 PHP:

> php -i

选项 -i 将会打印 PHP 配置,类似于 phpinfo() 函数。

选项 -a 提供交互式 Shell,和 Ruby 的 IRB 或 Python 的交互式 Shell 相似,此外还有很多其他有用的命令行选项。

接下来写一个简单的 “Hello, $name” CLI 程序,先创建名为 hello.php 的脚本:

if($argc != 2) {

echo "Usage: php hello.php [name].\n";

exit(1);

}

$name = $argv[1];

echo "Hello, $name\n";

PHP 会在脚本运行时根据参数设置两个特殊的变量,$argc 是一个整数,表示参数个数,$argv 是一个数组变量,包含每个参数的值, 它的第一个元素一直是 PHP 脚本的名称,如本例中为 hello.php。

命令运行失败时,可以通过 exit() 表达式返回一个非 0 整数来通知 Shell,常用的 exit 返回码可以查看列表.

运行上面的脚本,在命令行输入:

> php hello.php

Usage: php hello.php [name]

> php hello.php world

Hello, world

print_r($argv);

?>

#output:

D:\>\wamp\bin\php\php5.3.0\php.exe \tools\index.php bac ddd

Array

(

[0] => \tools\index.php #第一个自变量总是脚本自己的名称

[1] => bac

[2] => ddd

)

正如你可以从输出的结果看到的,传递给 index.php 的值会自动地作为数组元素出现在 $argv 里。要注意的是,$argv 的第一个自变量总是脚本自己的名称。

使用标准的输入和输出

PHP CLI会定义三个常量,以便让在命令行提示符下与解释器进行交互操作更加容易。这些常量见下表

#

常量

说明

1

STDIN

标准的输入设备

2

STDOUT

标准的输出设备

3

STDERR

标准的错误设备

你可以在自己的PHP脚本里使用这三个常量,以接受用户的输入,或者显示处理和计算的结果。

实例

// ask for input

fwrite(STDOUT, "Enter your name: ");

// get input

$name = trim(fgets(STDIN));

// write input back

fwrite(STDOUT, "Hello, $name!");

?>output:

在这个脚本里,fwrite() 函数首先会向标准的输出设备写一条消息,询问用户的姓名。然后它会把从标准输入设备获得的用户输入信息读取到一个 PHP 变量里,并它把合并成为一个字符串。然后就用 fwrite() 把这个字符串打印输出到标准的输出设备上。

D:\>\wamp\bin\php\php5.3.0\php.exe \tools\index.php

Enter your name: kkk

Hello, kkk!

使用CLI参数

除了用命令行传递PHP脚本参数,还可以传递 PHP CLI 参数以更改其工作方式。

#参数 说明

-a 交互式运行Run interactively

-c path 从path读取php的.ini文件

-n 不用读取php的.ini文件就直接运行

-m 列出经过编译的模块

-i 显示有关PHP构建的信息

-l 检查PHP脚本的句法

-s 以彩色方式显示源代码

-w 显示去掉注释之后的源代码

-h 显示帮助

交互模式

你还可以以交互方式使用 PHP CLI,也就是输入命令,马上获得结果。

要得到这种效果,只需要使用一个参数调用 CLI 可执行文件就行了,就像下面这样:

shell> /path/to/php -a

Interactive mode enabled

echo mktime();

1121187283

echo 2+2;

4

exit();

shell>

或者,你可以不使用 -a 参数就调用CLI可执行文件,直接输入完整的脚本或者代码段。

用 Ctrl -D 来结束代码段,并让CLI来执行它。见下面的例子:

shell> /path/to/php

echo date("d-M-Y h:i:s", time());

?>

PHP 扩展阅读:

发表评论

你可能感兴趣的:(php,命令行cli)