PHP在CLI模式下运行时的三种获取参数方式
一、变量$argv
<?php
//文件名:demo.php
var_dump($argv);
php demo.php aaa bbb ccc
array(4) {
[0]=>
string(10) "demo.php"
[1]=>
string(3) "aaa"
[2]=>
string(3) "bbb"
[3]=>
string(3) "ccc"
}
二、函数getopt()
<?php
//文件名:demo.php
$options = getopt('a:b:', ['c:', 'd::']);
var_dump($options);
php demo.php -aaa -bbb --c="cc" --d="dd"
输出:
array(4) {
["a"]=>
string(2) "aa"
["b"]=>
string(2) "bb"
["c"]=>
string(2) "cc"
["d"]=>
string(2) "dd"
}
三、文件句柄STDIN
<?php
//文件名:demo.php
do {
echo '您想输入啥:';
$str = fgets(STDIN);//获取一行字符(包含末尾回车符)
if(preg_match('/s*exits*/i', $str)){
exit("Byby!
");
}
echo '您输入了:' . $str;
echo "==============================
";
}
while(true);
fgets() 函数从文件指针中读取一行。具体查阅PHP文档
STDIN: 只读,可以拿到在控制台下输入的内容,fgets读取这个STDIN文件句柄,即可打印出刚才输入的内容;
STDOUT: 只写,用于向控制台输出正常信息;
STDERR: 只写,用于向控制台输出错误信息;
在控制台执行:
php demo.php
