基于命令行执行带参数的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 相关文章推荐
一个捕获函数输出的函数
Feb 14 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
Nov 12 PHP
防止用户利用PHP代码DOS造成用光网络带宽
Mar 01 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
php+ajax注册实时验证功能
Jul 20 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
PHP实现Unicode编码相互转换的方法示例
Nov 17 PHP
PHP实现的简单sha1加密功能示例
Aug 27 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP封装请求类实例分析【基于Yii框架】
Oct 17 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 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
德生PL330测评
2021/03/02 无线电
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
nodejs中实现路由功能
2014/12/29 NodeJs
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
在windows下使用python进行串口通讯的方法
2019/07/02 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
介绍一下Java中的static关键字
2012/05/12 面试题
劳动实践课感言
2014/02/01 职场文书
搞笑征婚广告词
2014/03/17 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
医德医风演讲稿
2014/05/20 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
万里长城导游词
2015/01/30 职场文书
教师研修随笔感言
2015/11/18 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android