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中strtotime函数使用方法分享
Jan 10 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 PHP
php用ini_get获取php.ini里变量值的方法
Mar 04 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
php使用COPY函数更新配置文件的方法
Jun 18 PHP
Apache PHP MySql安装配置图文教程
Aug 27 PHP
php封装的验证码工具类完整实例
Oct 19 PHP
laravel 5.3中自定义加密服务的方案详解
May 09 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 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文本操作类
2006/11/25 PHP
php 信息采集程序代码
2009/03/17 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
PHP的Yii框架入门使用教程
2016/02/15 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
vue实现自定义多选按钮
2020/07/16 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
python实现定时提取实时日志程序
2018/06/22 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
2014小学年度工作总结
2014/12/20 职场文书
孔子观后感
2015/06/08 职场文书