php 命令行下运行php脚本传递参数方法

本文介绍了三种在PHP中处理命令行参数的方法:直接使用$argc和$argv获取参数,使用getopt函数解析选项,以及通过命令行提示用户输入并读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一 使用argcargv

$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函数()

array getopt ( string options[,arraylongopts [, int &$optind ]] )

参数解析:

options

该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。 比如,一个选项字符串 “x” 识别了一个选项 -x。 只允许 a-z、A-Z 和 0-9。

longopts

选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符(–)传入到脚本的选项。 例如,长选项元素 “opt” 识别了一个选项 –opt。

options 可能包含了以下元素:

单独的字符(不接受值)
后面跟随冒号的字符(此选项需要值)
后面跟随两个冒号的字符(此选项的值可选)

$options = "f:g:";  

$opts = getopt( $options );  

print_r($opts);   
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!  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值