您的位置:首页 > 编程语言 > PHP开发

PHP命令行脚本接收传入参数的三种…

2016-03-04 10:02 561 查看
这篇文章主要介绍了PHP命令行脚本接收传入参数的三种方式,即把PHP脚本像Python脚本、Ruby脚本、Shell脚本一样,用来处理命令行程序,如何获取命令行中的参数,需要的朋友可以参考下

通常PHP都做http方式请求了,可以使用GET or
POST方式接收参数,有些时候需要在shell命令下把PHP当作脚本执行,比如定时任务。这就涉及到在shell命令下如何给php传参的问题,通常有三种方式传参。

一、使用$argv or $argc参数接收

复制代码 代码如下:

 

echo "接收到{$argc}个参数";

print_r($argv);

执行

复制代码 代码如下:

[root@DELL113 lee]# /usr/local/php/bin/php test.php

接收到1个参数Array

(

    [0] =>
test.php

)

[root@DELL113 lee]# /usr/local/php/bin/php test.php a b c d

接收到5个参数Array

(

    [0] =>
test.php

    [1] =>
a

    [2] =>
b

    [3] =>
c

    [4] =>
d

)

[root@DELL113 lee]#

二、使用getopt函数

复制代码 代码如下:

 

$param_arr = getopt('a:b:');

print_r($param_arr);

执行

复制代码 代码如下:

[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345

Array

(

    [a] =>
345

)

[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b
12q3

Array

(

    [a] =>
345

    [b] =>
12q3

)

[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3
-e 3322ff

Array

(

    [a] =>
345

    [b] =>
12q3

)

三、提示用户输入

复制代码 代码如下:

fwrite(STDOUT,'请输入您的博客名:');

echo '您输入的信息是:'.fgets(STDIN);

执行

复制代码 代码如下:

[root@DELL113 lee]# /usr/local/php/bin/php test.php

请输入您的博客名:脚本之家 www.jb51.net

您输入的信息是:脚本之家 www.jb51.net

你也可以这么干,不让用户输入空信息

复制代码 代码如下:

 

$fs = true;

 

do{

oif($fs){

fwrite(STDOUT,'请输入您的博客名:');

$fs = false;

}else{

fwrite(STDOUT,'抱歉,博客名不能为空,请重新输入您的博客名:');

}

 

$name = trim(fgets(STDIN));

 

}while(!$name);

 

echo '您输入的信息是:'.$name."\r\n";

执行

复制代码 代码如下:

[root@DELL113 lee]# /usr/local/php/bin/php test.php

请输入您的博客名:

抱歉,博客名不能为空,请重新输入您的博客名:脚本之家
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: