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 相关文章推荐
一个简单的自动发送邮件系统(一)
Oct 09 PHP
PHP中的cookie
Nov 26 PHP
PHP提取数据库内容中的图片地址并循环输出
Mar 21 PHP
php生成高清缩略图实例详解
Dec 07 PHP
Zend Framework教程之Application用法实例详解
Mar 14 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
在IIS下安装PHP扩展的方法(超简单)
Apr 10 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 PHP
laravel 多图上传及图片的存储例子
Oct 14 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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 CLI实现简单的数据库实时监控调度
2009/07/01 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
javascript GUID生成器实现代码
2009/10/31 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
详解Django中的过滤器
2015/07/16 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
Python pymongo模块常用操作分析
2018/09/01 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
python顺序执行多个py文件的方法
2019/06/29 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
解决python 文本过滤和清理问题
2019/08/28 Python
python一些性能分析的技巧
2020/08/30 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
广告学专业毕业生自荐信
2013/09/24 职场文书
管道维修工岗位职责
2013/12/27 职场文书
财经学院自荐信范文
2014/02/02 职场文书
职业生涯规划书范文
2014/03/10 职场文书
销售总经理岗位职责
2014/03/15 职场文书
党员批评与自我批评思想汇报(集锦)
2014/09/14 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
Python实现排序方法常见的四种
2021/07/15 Python