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

 更新时间:2014年08月20日 09:31:18   作者:琼台   我要评论

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

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

复制代码 代码如下:

<?php
/**
 * 使用 $argc $argv 接受参数
 */
 
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函数
复制代码 代码如下:

<?php
/**
 * 使用 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
)

三、提示用户输入
复制代码 代码如下:

<?php
/**
 * 提示用户输入,类似Python
 */
fwrite(STDOUT,'请输入您的博客名:');
echo '您输入的信息是:'.fgets(STDIN);

执行
复制代码 代码如下:

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

请输入您的博客名:脚本之家 www.jb51.net
您输入的信息是:脚本之家 www.jb51.net
你也可以这么干,不让用户输入空信息
复制代码 代码如下:

<?php
/**
 * 提示用户输入,类似Python
 */
 
$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
请输入您的博客名:
抱歉,博客名不能为空,请重新输入您的博客名:脚本之家
您输入的信息是:脚本之家

相关文章

  • PHP下通过QRCode类库创建中间带网站LOGO的二维码

    PHP下通过QRCode类库创建中间带网站LOGO的二维码

    这篇文章主要介绍了用php中QRCode类库创建中间带LOGO的二维码,QRcode生成二维码的实例代码,有需要的朋友可以参考下
    2014-07-07
  • WordPress自定义时间显示格式

    WordPress自定义时间显示格式

    这篇文章主要介绍了WordPress自定义时间显示格式的方法,需要的朋友可以参考下
    2015-03-03
  • PHP laravel中的多对多关系实例详解

    PHP laravel中的多对多关系实例详解

    数据表之间是纵横交叉、相互关联的,laravel的一对一,一对多比较好理解,本文重点通过实例给大家讲解 laravel中的多对多关系,感兴趣的朋友一起看看吧
    2017-06-06
  • PHP开发微信支付的代码分享

    PHP开发微信支付的代码分享

    最近一直在研究微信,不研究不知道,一研究下一跳啊,微信真的可以做太多事情了,先来看下微信支付的开发心得吧,以后会慢慢补全其他方面的开发代码
    2014-05-05
  • php和jquery实现地图区域数据统计展示数据示例

    php和jquery实现地图区域数据统计展示数据示例

    我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现。本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息。适用于数据统计和地图区块展示等场景
    2014-02-02
  • TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例

    TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例

    这篇文章主要介绍了TP5(thinkPHP5)框架基于ajax与后台数据交互操作,结合实例形式分析了thinkPHP5前端基于jQuery的ajax数据提交及后台数据接收、处理相关操作技巧,需要的朋友可以参考下
    2018-09-09
  • php 在字符串指定位置插入新字符的简单实现

    php 在字符串指定位置插入新字符的简单实现

    下面小编就为大家带来一篇php 在字符串指定位置插入新字符的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • PHP中的日期加减方法示例

    PHP中的日期加减方法示例

    这篇文章主要介绍了PHP中的日期加减方法示例,主要是对date()函数和strtotime()函数使用,需要的朋友可以参考下
    2014-08-08
  • Zend Framework自定义Helper类相关注意事项总结

    Zend Framework自定义Helper类相关注意事项总结

    这篇文章主要介绍了Zend Framework自定义Helper类相关注意事项,总结分析了编写自定义Helper类的相关原则与实现技巧,需要的朋友可以参考下
    2016-03-03
  • php中的strpos使用示例

    php中的strpos使用示例

    strpos()函数返回字符串在另一个字符串中第一次出现的位置。如果没有找到该字符串,则返回 false,下面看示例使用方法
    2014-02-02

最新评论