基于命令行执行带参数的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 面向对象实现代码
Nov 11 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
PHP性能优化准备篇图解PEAR安装
Dec 05 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
浅谈ThinkPHP的URL重写
Nov 25 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
CI框架支持$_GET的两种实现方法
May 18 PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 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
example1.php
2006/10/09 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
如何在php中正确的使用json
2013/08/06 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
深入理解Node内建模块和对象
2019/03/12 Javascript
js实现点击生成随机div
2020/01/16 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
python的dict判断key是否存在的方法
2020/12/09 Python
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
人力管理专业毕业生求职信
2014/02/27 职场文书
班主任班级寄语大全
2014/04/04 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
实习护士自荐信
2015/03/25 职场文书
行政处罚告知书
2015/07/01 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL