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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
php 进度条实现代码
Mar 10 PHP
php URL验证正则表达式
Jul 19 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
php生成图片验证码
Jun 09 PHP
实现PHP搜索加分页
Oct 12 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 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生成静态HTML速度快类库
2007/03/18 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
python生成二维码的实例详解
2017/10/29 Python
Python定时器实例代码
2017/11/01 Python
答题辅助python代码实现
2018/01/16 Python
python读文件的步骤
2019/10/08 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
彪马英国官网:PUMA英国
2019/02/11 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
护理职业应聘自荐书
2013/09/29 职场文书
生产部主管岗位职责
2014/01/06 职场文书
11月升旗仪式讲话稿
2014/02/15 职场文书
小学家长学校培训材料
2014/08/24 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
Python实现简单的猜单词
2021/06/15 Python
Mysql排序的特性详情
2021/11/01 MySQL
Python读取和写入Excel数据
2022/04/20 Python
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server