基于命令行执行带参数的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 清除网页病毒的方法
Dec 05 PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 PHP
PHP 函数学习简单小结
Jul 08 PHP
phpmail类发送邮件函数代码
Feb 20 PHP
php读取excel文件的简单实例
Aug 26 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
Oct 21 PHP
yii2中添加验证码的实现方法
Jan 09 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
php图片裁剪函数
Oct 31 PHP
PHP实现考试倒计时功能代码
Apr 16 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二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
jqTransform美化表单
2015/10/10 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
python实现无证书加密解密实例
2014/10/27 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
Python爬豆瓣电影实例
2018/02/23 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
超级实用的8个Python列表技巧
2020/08/24 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
高校自主招生自荐信
2013/12/09 职场文书
全神贯注教学反思
2014/02/03 职场文书
Java中的继承、多态以及封装
2022/04/11 Java/Android