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 小乘法表实现代码
Jul 16 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
phpmailer中文乱码问题的解决方法
Apr 22 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
php操作redis缓存方法分享
Jun 03 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
PHP加密解密实例分析
Dec 25 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 PHP
php输出文字乱码的解决方法
Oct 04 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 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
PHP6 mysql连接方式说明
2009/02/09 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
取选中的radio的值
2010/01/11 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
Vuex提升学习篇
2018/01/11 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
python中plot实现即时数据动态显示方法
2018/06/22 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
对python:print打印时加u的含义详解
2018/12/15 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
土耳其国际性时尚购物网站:Modanisa
2018/01/19 全球购物
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
民事撤诉申请书范本
2015/05/18 职场文书
公司人事管理制度
2015/08/05 职场文书
Redis读写分离搭建的完整步骤
2021/09/14 Redis
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers