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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
php HtmlReplace输入过滤安全函数
Jul 03 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
PHP超级全局变量数组小结
Oct 04 PHP
php+mysqli使用预处理技术进行数据库查询的方法
Jan 28 PHP
php版微信小店调用api示例代码
Nov 12 PHP
php中str_pad()函数用法分析
Mar 28 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
php抽象方法和普通方法的区别点总结
Oct 13 PHP
PHP autoload使用方法及步骤详解
Sep 05 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
PHP实现把数字ID转字母ID
2013/08/12 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
php常用的工具开发整理
2019/09/26 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
Python字典对象实现原理详解
2019/07/01 Python
pandas 时间格式转换的实现
2019/07/06 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
Python如何进行时间处理
2020/08/06 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
婚礼主持词
2014/03/13 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python