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

yipeiwu_com6年前PHP代码库

本文分析了基于命令行执行带参数的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面向对象程序设计入门教程

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

相关文章

PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】

本文实例讲述了PHP7实现和CryptoJS的AES加密方式互通。分享给大家供大家参考,具体如下: PHP类: class AES { /** * * @param...

php获得当前的脚本网址

//获得当前的脚本网址 function GetCurUrl(){     if(!empty($_SERVER["REQUEST_...

Windows7下的php环境配置教程

Windows7下的php环境配置教程

一:下载程序包 首先到php官网下载程序包,官网地址: http://www.php.net/downloads.php 二:解压 解压你的程序包,放在除c盘外的目录下(文件夹非中文命名...

火车采集器 免费版使出收费版本功能实现原理

hi 各位免费火车头采集器的采友: 火车头免费版本不支持采集结果的外挂处理,比如采用php来辅助处理结果,而火车头本身对于正则表达式的不完整支持, 导致对于采集一些有混淆文字的内容效果不...

PHP的邮件群发系统phplist配置方法详细总结

本文实例讲述了PHP的邮件群发系统phplist配置方法。分享给大家供大家参考,具体如下: phplist是一个十分不错的邮件群发系统,让我们可以很方便地群发电子杂志、小广告(^_^)等...