文档章节

PHP CLI程序

iDev_周晶
 iDev_周晶
发布于 2012/10/31 17:53
字数 201
阅读 229
收藏 1

编写CLI程序,从命令行启动,传入参数接收方式:

argv 、getopt()

$argv(预定义变量) :

传递给脚本的参数数组

包含当运行于命令行下时传递给当前脚本的参数的数组。

第一个参数总是当前脚本的文件名,因此 $argv[0] 就是脚本文件名。

$argc (预定义变量):

传递给脚本的参数数目

包含当运行于命令行下时传递给当前脚本的参数的数目。

 脚本的文件名总是作为参数传递给当前脚本,因此 $argc 的最小值为 1

以上两个变量仅在 register_argc_argv 打开时可用。

getopt():

$p = getopt('f:m:h',array('fname:','mem:','help'));//一个例子啥都有了

Usage: php XXX.php [options] -f(--fname) -m(--mem) [-h(--help)]


© 著作权归作者所有

共有 人打赏支持
下一篇: PHP 引用
iDev_周晶

iDev_周晶

粉丝 59
博文 9
码字总数 5401
作品 1
海淀
技术主管
私信 提问
加载中

评论(2)

iDev_周晶
iDev_周晶

引用来自“hisenKing”的评论

“以上两个变量仅在 register_argc_argv 打开时可用” 有测试过么?

没有,那句话是摘自php文档,上面有链接的,我觉得$argv的值用起来不方便,一般都用getopt了
hisenKing
hisenKing
“以上两个变量仅在 register_argc_argv 打开时可用” 有测试过么?
PHP 内核分析(1):sapi_module_struct

原文出处:叶剑峰 这里阅读的php版本为PHP-7.1.0 RC3,阅读代码的平台为linux 首先是寻找php的入口,php有很多种模式,apache,php-fpm, cli模式,我要入手的话,只能先从最简单的cli模型开始...

叶剑峰
2016/12/07
0
0
非关系型数据库Redis Linux 下安装

下载地址:http://redis.io/download $ wget http://download.redis.io/releases/redis-3.2.9.tar.gz $ tar zxvf redis-3.2.9.tar.gz $ cd redis-3.2.9 $ make make完后 redis-3.2.9目录下会......

方花
2018/04/24
0
0
php---如何在命令行下运行PHP脚本[带参数]

创建一个简单的文本文件,其中包含有以下PHP代码,并把它保存为hello.php: <?php echo "Hello from the CLI"; ?> 现在,试着在命令行提示符下运行这个程序,方法是调用CLI可执行文件并提供脚...

durban
2012/03/21
0
0
thinkphp 定时执行php文件 php自动执行php文件

最近开发短信任务和短信发送功能,用到了定时执行php这方面:和大家分享一下: (个人笔记,写的不好,海涵海涵,看不懂的话可以留言,但是我一般都能及时回复,其他网上有很多这样的教程,大...

松竹斋
2012/12/14
0
0
php内核分析(一)-sapi_module_struct

这里阅读的php版本为PHP-7.1.0 RC3,阅读代码的平台为linux 首先是寻找php的入口,php有很多种模式,apache,php-fpm, cli模式,我要入手的话,只能先从最简单的cli模型开始。 那么,我需要先...

王二狗子11
2018/01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
24分钟前
1
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
36分钟前
0
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
今天
1
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
今天
1
0
java8的时间和`Date`的对比

java8的时间和Date的对比 java8提供了新的时间接口。相对Date,Calendar,个人感觉最大的好处是对时间操作的学习成本很低,比Calendar低。 1. LocalDate,LocalTime,LocalDateTime LocalDate 代...

北风刮的不认真了
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部