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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
php下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
php实现httpRequest的方法
Mar 13 PHP
php中关于socket的系列函数总结
May 18 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
解决Laravel 不能创建 migration 的问题
Oct 09 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 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自动更新版权信息显示的方法
2015/06/19 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
js实现动态时钟
2020/03/12 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
详解vue路由
2020/08/05 Javascript
vue接口请求加密实例
2020/08/11 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
玩转python爬虫之URLError异常处理
2016/02/17 Python
python读取文件名称生成list的方法
2018/04/27 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
美国在线面料商店:Online Fabric Store
2018/07/26 全球购物
大学英语专业求职信
2014/06/21 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS