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 相关文章推荐
第二节 对象模型 [2]
Oct 09 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
php 数组元素快速去重
May 05 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
详解提高使用Java反射的效率方法
Apr 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实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
JS合并数组的几种方法及优劣比较
2014/09/19 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
在bootstrap中实现轮播图实例代码
2017/06/11 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
探究python中open函数的使用
2016/03/01 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
公司年会演讲稿范文
2014/01/11 职场文书
优秀教师先进事迹
2014/01/22 职场文书
公司股份合作协议书
2014/12/07 职场文书
农业项目合作意向书
2015/05/08 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Apache POI的基本使用详解
2021/11/07 Servers