【命令行】命令行下运行PHP的一些知识点【原创】


1. PHP不仅可以运行在网页中,还可以通过命令行模式运行,名为CLI(Command Line Interface),在cli模式下会覆盖php.ini的一些设置,覆盖的php.ini设置如下:

2. STDIN、STDOUT
在cli模式下,输入和输出可以使用STDIN和STDOUT,类似于C的scanf,比如:
<?php

//提示用户输入姓名
fwrite(STDOUT, "what's your name" . PHP_EOL);

//获取用户输入数据
$name = trim(fgets(STDIN));

//在客户端输出
fwrite(STDOUT, "Hello, $name" . PHP_EOL);
在命令行中执行 php xxx.php,就会提示你输入姓名,输入后会输出:

λ php test11.php
what's your name
paul
Hello, paul
但是如果在web中运行该php,就会报错:



3. 判断是在命令行还是在web
可以在代码中判断该php是运行在哪种方式:
<?php

echo PHP_SAPI . PHP_EOL;
echo php_sapi_name() . PHP_EOL;
如果是在命令下运行,则输出:

λ php test11.php
cli
cli
如果是在web下运行,则输出:

cgi-fcgi cgi-fcgi 

4. 命令模式下接收参数
在命令模式下可以通过$argv来读取所有的输入参数,用$argc来读取输入参数的个数,比如代码如下:
<?php

echo '参数的个数为:' . $argc . PHP_EOL;
print_r($argv);
在命令模式下输入:
php test11.php argv1 argv2 argv3
输出:
λ php test11.php argv1 argv2 argv3
参数的个数为: 4
Array
(
    [0] => test11.php
    [1] => argv1
    [2] => argv2
    [3] => argv3
)
注意:第一个参数是该php脚本

注意:$argv和$argc,在cli模式下可以正常使用,而在web模式下的话则会报错:


发布了64 篇原创文章 · 获赞 47 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/jiandanokok/article/details/79101624