基于命令行执行带参数的php脚本并取得参数的方法_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程序设计有所帮助。

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

时间: 2024-10-29 18:49:23

基于命令行执行带参数的php脚本并取得参数的方法_php技巧的相关文章

php正则匹配html中带class的div并选取其中内容的方法_php技巧

本文实例讲述了php正则匹配html中带class的div并选取其中内容的方法.分享给大家供大家参考.具体分析如下: 先看一段html代码: 复制代码 代码如下: <div class="chartInfo">   <div class="line"></div>  <div class="tideTable">       <strong>潮汐表</strong>数据仅供参

通过PHP自带的服务器来查看正则匹配结果的方法_php技巧

众所周知,PHP代码需要web服务器来执行,要测试PHP代码就得搭建一个web服务器,这就给我们平时学习带来了较多不便.不过好在PHP v5.4版本以后,PHP会自带一个功能简单的web服务器. 启动内置web服务器 首先,进入自定义的web文件夹,然后启动内置web服务器: cd ~/public_html php -S localhost:8000 端口号8000是自定义的,换成其他未使用端口均可. 启动后,控制界面如下所示: 测试内置服务器 在public_html文件夹下建立test.p

PHP判断FORM表单或URL参数来的数据是否为整数的方法_php技巧

PHP判断FORM表单或URL参数来的数据是否为整数,is_int函数对于FORM表单或URL参数过来的数据是没有办法判断是否是整数的,因为FORM过来的是字符串. 用is_numeric可以判断是否为数字类型,再判断是否有小数点就可以判断是不是整数了 if(!is_numeric($page)||strpos($page,".")!==false){ echo "不是整数"; }else{ echo "是整数"; } 有时候我们需要判断id是否

lftp 4.3.0发布 基于命令行的文件传输程序

lftp是一个复杂的基于命令行的文件传输程序.支持的协议包括FTP,HTTP,SFTP和FISH.它有一个多线程的设计让同时执行多个指令或后台.它还具有镜像功能,并会重新连接并继续在断开连接时传输.另外,如果你退出程序而转移到其它工作,它会切换到使用nohup模式,完成在后台传输.其他支持的协议:通过HTTP代理的FTP,http://www.aliyun.com/zixun/aggregation/29830.html">HTTPS和FTP通用SSL,BitTorrent协议.还有可调参

命令行删除带.的文件夹(畸形文件夹)_DOS/BAT

命令行删除带.的文件夹 系统里有一个 temp.. 的文件夹,估计是中木马了 进入DOS 进入该文件所在的位置 复制代码 代码如下: rd /S /Q temp..\\ 这样就不会提示 文件夹不为空 的错误了. 为了方便大家使用这里提供一个更好的方法: 下面推荐个更强劲的删除代码(执行畸形文件) 将下面的代码保存为 jb51del.bat 复制代码 代码如下: DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 使用方法:将要删除的文件拖动到这个bat文件上就可以了

paip: paip.命令行执行js

paip.命令行执行js 作者Attilax ,  EMAIL:1466519819@qq.com,112237553@qq.com 使用JS来做项目,需要解决两个问题...GUI界面可以使用HTML技术来解决..命令行程序则需要使用WSH技术了.. 1. 执行 ------------- Cscript //nologo //x C:\Users\attilax\Desktop\x.wsf   CScript //Job:mainx  C:\Users\attilax\Desktop\x.ws

dos命令行删除带.的文件夹(畸形文件夹)

系统里有一个 temp.. 的文件夹,估计是中木马了,其实就是利用了系统的bug,直接手工删除是无法实现的,一般我们通过dos或者畸形文件夹删除工具才可以   命令行删除带.的文件夹 系统里有一个 temp.. 的文件夹,估计是中木马了 进入DOS 进入该文件所在的位置 复制代码 代码如下: rd /S /Q temp.. 这样就不会提示 文件夹不为空 的错误了.

学生信息管理系统-java基于命令行的学生成绩管理系统

问题描述 java基于命令行的学生成绩管理系统 1.设计学生类接口: 2.使用集合框架,实现学生成绩的插入.通过名字查询.显示各科成绩排名列表.显示各科成绩通过学生学号的排名列表. 3.将内存中的集合框架对象进行持久化,下一次运行系统时可直接调用(基础比较差,希望在线指导,不要求源代码,但求思路指导,) 解决方案 成绩录入.可以录入文件.黑屏 输入姓名+各科成绩.直接流写入txt文件. 查询.可以先将文件按行读出,存储在list或者map中.遍历查询输出即可. 解决方案二: 1.持久化 可以持久

正在自学go语言,命令行执行以下程序,进入等待输入状态,请问如何处理?

问题描述 正在自学go语言,命令行执行以下程序,进入等待输入状态,请问如何处理? package main import (bufio""fmt""os"") func main() { counts := make(map[string]int) input := bufio.NewScanner(os.Stdin) for input.Scan() { counts[input.Text()]++ } // NOTE: ignoring po