1. 云栖社区>
  2. PHP教程>
  3. 正文

shell调用php脚本,并传递参数

作者:用户 来源:互联网 时间:2017-12-01 19:27:41

phpshell脚本参数传递调用

shell调用php脚本,并传递参数 - 摘要: 本文讲的是shell调用php脚本,并传递参数, 命令行执行带参数的php脚本,并取得参数  发表于 2011-07-15 分类目录: php 一,为什么我们要在命令行下运行php脚本呢。 个人理解,主要有二个原因: 1,利用crontab去跑php,可以给服务器减压,当然在这里有一个条

命令行执行带参数的php脚本,并取得参数

 发表于 2011-07-15

分类目录: php

一,为什么我们要在命令行下运行php脚本呢。

个人理解,主要有二个原因:

1,利用crontab去跑php,可以给服务器减压,当然在这里有一个条件,就是实时性要求不高。比如:sns中的好友动态,这个实时要求不高,但是数据量比较大,这个时候定时跑的话,会给web服务器,数据库服务器分担不小的压力。

2,就是我们要定时去完成某一事情,比如:我要删除一个月前,用户留言,这个时候,写的php脚本在crontab去执行,一天跑一次就行了。而不是手动去执行php程序。

二,命令行下执行带参数php,并取得参数

有一点很重要,就是命令行下执行php,是不走apache等这类东西的,没有什么http协议,所有get,post传参数根本不起作用,并且还会报错,如下:

[email protected]:~$ php test.php?aaa=bbb

Could not open input file: test.php?aaa=bbb

般情况下,不需要向定时跑的php脚本传参数,但有的时候,是要的。

1,test.php测试文件,很简单吧

查看复制打印?
  1. <?php  
  2. print_r($argv);  
  3. echo "/n";  
  4. echo $argc;  
  5. echo "/n";  
  6. ?>  

2,命令行下调用

查看复制打印?
  1. [email protected]:~$ php test.php aaa ccc  bbbb  
  2. Array  
  3. (  
  4.  [0] => test.php    //参数0,文件本身  
  5.  [1] => aaa         //参数1  
  6.  [2] => ccc         //参数2  
  7.  [3] => bbbb        //参数3  
  8. )  
  9.   
  10. 4      //$argc的值,参数的总数  

这种传参的方式,根shell脚本真的很像,

[email protected]:~$ sh c1.sh aaa bbb

我向c1.sh传了二个参数aaa bbb,shell会得到三个参数,$0为文件本身,$1为参数1,$2为参数2。不同的是,php得到的是以数组的形势,而shell不是。


以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , shell , 脚本 , 参数 , 传递 调用 ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备