基于命令行执行带参数的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 相关文章推荐
PHP VS ASP
Oct 09 PHP
phplock(php进程锁) v1.0 beta1
Nov 24 PHP
PHP中调用ASP.NET的WebService的代码
Apr 22 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
第二章 PHP入门基础之php代码写法
Dec 30 PHP
PHP 常用数组内部函数(Array Functions)介绍
Jun 05 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
浅谈php扩展imagick
Jun 02 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
laravel5环境隐藏index.php后缀(apache)的方法
Oct 12 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
PHP控制网页过期时间的代码
2008/09/28 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
Use Word to Search for Files
2007/06/15 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
python实现通过shelve修改对象实例
2014/09/26 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Python argparse模块使用方法解析
2020/02/20 Python
python如何进行矩阵运算
2020/06/05 Python
python设置表格边框的具体方法
2020/07/17 Python
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
品恩科技软件测试面试题
2014/10/26 面试题
Delphi CS笔试题
2014/01/04 面试题
《满井游记》教学反思
2014/02/26 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
新教师培训心得体会
2014/09/02 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
股东大会通知
2015/04/24 职场文书
起诉意见书范文
2015/05/19 职场文书
springboot用户数据修改的详细实现
2022/04/06 Java/Android