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语句的解决方法
May 02 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
PHP速成大法
Jan 30 PHP
PHP SplObjectStorage使用实例
May 12 PHP
php实现模拟post请求用法实例
Jul 11 PHP
php实现学生管理系统
Mar 21 PHP
php实现等比例不失真缩放上传图片的方法
Nov 14 PHP
PHP中使用OpenSSL生成证书及加密解密
Feb 05 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
PHP filesize函数用法浅析
Feb 15 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 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 远程图片保存到本地的函数类
2008/12/08 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
Smarty保留变量用法分析
2016/05/23 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
基于Python log 的正确打开方式
2018/04/28 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
点菜员岗位职责范本
2014/02/14 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
Python时间操作之pytz模块使用详解
2022/06/14 Python