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


Posted in PHP onAugust 20, 2014

通常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

请输入您的博客名:三水点靠木 3water.com
您输入的信息是:三水点靠木 3water.com
你也可以这么干,不让用户输入空信息
<?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 相关文章推荐
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
yii用户注册表单验证实例
Dec 26 PHP
关于php中一些字符串总结
May 05 PHP
yii通过小物件生成view的方法
Oct 08 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 PHP
详解Laravel服务容器的优势
May 29 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 #PHP
PHP函数http_build_query使用详解
Aug 20 #PHP
PHP函数in_array()使用详解
Aug 20 #PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 #PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 #PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 #PHP
PHP将回调函数作用到给定数组单元的方法
Aug 19 #PHP
You might like
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP仿盗链代码
2012/06/03 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
php查询内存信息操作示例
2019/05/09 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
微信小程序常用简易小函数总结
2019/02/01 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
python解析文件示例
2014/01/23 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
详解python中asyncio模块
2018/03/03 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
Python sorted排序方法如何实现
2020/03/31 Python
python如何变换环境
2020/07/21 Python
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
小饰品店的创业计划书范文
2013/12/28 职场文书
工作违纪检讨书
2014/02/17 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
交通安全月活动总结
2015/05/08 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js