如何在命令行下运行php脚本以及传递参数

如果php加入了环境变量,如何查看php版本

https://blog.csdn.net/qq_36031499/article/details/54292080 

在命令行下运行脚本:window下,假设php安装目录为c:\program files\php5\,那么使用命令窗口进入到该路径下,敲入php hello.php回车,则会执行当前路径下的hello.php文件,如果要指向其他路径下php文件,可以在php 路径/hello.php ,这种形式称为CLI模式,我们平时通过浏览器看到的那种称为CGI模式,至于传递参数,php文件在cli模式下,直接通过在文件名称后面接参数,多个参数中间用空格隔开,在php文件里面是通过两个变量来获取参数的,一个是$argv,一个是$argc,前者是传递参数的数组,默认第一个为php文件的名称;后者为$argv的数组个数。
linux下,一般程序安装都会安装在/usr/bin/php下面,可以通过man php查看一下,如果有信息说明可以使用,使用方法类似于window下。如果前面这步成立,那么你可以直接 php php文件 来运行php文件,如果man php没有信息,则说明当前php执行文件没有在环境路径里面,可以修改环境路径包含php路径,也可以类似于window进入php路径,在执行 php php文件。其他类似于window下。

PHP获取参数的三种方法:

方法一 使用$argc $argv


<?php
 
if ($argc > 1){
 
print_r($argv);
 


在命令行下运行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456

运行结果:

# /usr/local/php/bin/php ./getopt.php -f 123 -g 456
 
Array
 
(
 
[0] => ./getopt.php
 
[1] => -f
 
[2] => 123
 
[3] => -g
 
[4] => 456
 
)
方法二 使用getopt函数()

getopt ( string $options [, array $longopts ] );

参数解析:

options


该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。 比如,一个选项字符串 "x" 识别了一个选项 -x。 只允许 a-z、A-Z 和 0-9。
longopts
选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符(--)传入到脚本的选项。 例如,长选项元素 "opt" 识别了一个选项 --opt。
options 可能包含了以下元素:

单独的字符(不接受值)
后面跟随冒号的字符(此选项需要值)
后面跟随两个冒号的字符(此选项的值可选)
选项的值是字符串后的第一个参数。它不介意值之前是否有空格。
$options = "f:g:";
 
$opts = getopt( $options );
 
print_r($opts); 
在命令行下运行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456
运行结果:

Array
 
(
 
[f] => 123
 
[g] => 456
 
)
方法三 提示用户输入,然后获取输入的参数。有点像C语言

fwrite(STDOUT, "Enter your name: ");
 
$name = trim(fgets(STDIN));
 
fwrite(STDOUT, "Hello, $name!"); 
stdout -- 标准输出设备 (printf("..")) 同 stdout。
stderr -- 标准错误输出设备
两者默认向屏幕输出。
但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。

在命令行下运行 /usr/local/php/bin/php ./getopt.php

运行结果

Enter your name: zhang //(zhang 为用户输入)
 
Hello, zhang!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值