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服务器
Oct 09 PHP
PHP静态类
Nov 25 PHP
用mysql_fetch_array()获取当前行数据的方法详解
Jun 05 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
PHP向浏览器输出内容的4个函数总结
Nov 17 PHP
Discuz!X中SESSION机制实例详解
Sep 23 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
PHP简单实现数字分页功能示例
Aug 24 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
PHP 使用二进制保存用户状态的实例
Jan 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中的boolean(布尔)类型详解
2013/10/28 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
js转义字符介绍
2013/11/05 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
2015/08/10 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
解析JavaScript数组方法reduce
2016/12/12 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
pygame实现简易飞机大战
2018/09/11 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
Django如何重置migration的几种情景
2021/02/24 Python
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
电大自我鉴定
2013/10/27 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
2014年法制宣传日活动方案
2014/11/02 职场文书
实习生辞职信范文
2015/03/02 职场文书
一年级语文教学随笔
2015/08/14 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
防止web项目中的SQL注入
2021/12/06 MySQL