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中利用XML技术构造远程服务(上)
Oct 09 PHP
example1.php
Oct 09 PHP
php disk_free_space 返回目录可用空间
May 10 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
php字符串分割函数explode的实例代码
Feb 07 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
使用PHP访问RabbitMQ消息队列的方法示例
Jun 06 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 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读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
php数据序列化测试实例详解
2017/08/12 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
Nuxt.js踩坑总结分享
2018/01/18 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
iView框架问题整理小结
2018/10/16 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
基于Python列表解析(列表推导式)
2018/06/23 Python
Python合并多个Excel数据的方法
2018/07/16 Python
浅析Python函数式编程
2018/10/06 Python
python递归法解决棋盘分割问题
2019/07/17 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
python openpyxl模块的使用详解
2021/02/25 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
寒假实习自荐信
2014/01/26 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
教师读书活动总结
2014/05/07 职场文书
新员工辞职信范文
2015/05/12 职场文书
聘任书范文大全
2015/09/21 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js