基于命令行执行带参数的php脚本并取得参数的方法


Posted in PHP onJanuary 25, 2016

本文分析了基于命令行执行带参数的php脚本并取得参数的方法。分享给大家供大家参考,具体如下:

一、为什么我们要在命令行下运行php脚本呢?

个人理解,主要有二个原因:

1. 利用crontab去跑php,可以给服务器减压,当然在这里有一个条件,就是实时性要求不高。比如:sns中的好友动态,这个实时要求不高,但是数据量比较大,这个时候定时跑的话,会给web服务器,数据库服务器分担不小的压力。

2. 就是我们要定时去完成某一事情,比如:我要删除一个月前,用户留言,这个时候,写的php脚本在crontab去执行,一天跑一次就行了。而不是手动去执行php程序。

二、命令行下执行带参数php,并取得参数

有一点很重要,就是命令行下执行php,是不走apache等这类东西的,没有什么http协议,所有get,post传参数根本不起作用,并且还会报错,如下:

zhangying@ubuntu:~$ php test.php?aaa=bbb
Could not open input file: test.php?aaa=bbb

一般情况下,不需要向定时跑的php脚本传参数,但有的时候,是要的

1. test.php测试文件,很简单吧

<?php
print_r($argv);
echo "\n";
echo $argc;
echo "\n";
?>

2. 命令行下调用

zhangying@ubuntu:~$ php test.php aaa ccc bbbb
Array
(
 [0] => test.php  //参数0,文件本身
 [1] => aaa     //参数1
 [2] => ccc     //参数2
 [3] => bbbb    //参数3
)
4 //$argc的值,参数的总数

这种传参的方式,根shell脚本真的很像

zhangying@ubuntu:~$ sh c1.sh aaa bbb

我向c1.sh传了二个参数aaa bbb,shell会得到三个参数,$0为文件本身,$1为参数1,$2为参数2。不同的是,php得到的是以数组的形势,而shell不是。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
获得Google PR值的PHP代码
Jan 28 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
Mar 01 PHP
解析php中memcache的应用
Jun 18 PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 PHP
PHP也能干大事 随机函数
Apr 14 PHP
PHP中addcslashes与stripcslashes函数用法分析
Jan 07 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
php7中停止php-fpm服务的方法详解
May 09 PHP
crontab无法执行php的解决方法
Jan 25 #PHP
win7安装php框架Yii的方法
Jan 25 #PHP
php结合md5实现的加密解密方法
Jan 25 #PHP
PHP几个实用自定义函数小结
Jan 25 #PHP
php代码架构的八点注意事项
Jan 25 #PHP
详解js异步文件加载器
Jan 24 #PHP
PHP导出Excel实例讲解
Jan 24 #PHP
You might like
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
基于jquery的无刷新分页技术
2011/06/11 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
js实现拖拽功能
2017/03/01 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
跟老齐学Python之Python文档
2014/10/10 Python
在Python的Django框架的视图中使用Session的方法
2015/07/23 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
企业新年寄语
2014/04/04 职场文书
授权委托书协议书
2014/10/16 职场文书
三好学生个人总结
2015/02/15 职场文书
单身申明具结书
2015/02/26 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript