PHP命令行脚本接收参数的方法
最近看python脚本,传参很方便。就查了查PHP脚本如何接受参数,发现有三种方式,记录一下
使用$argv
or $argc
对参数进行接收
描述
$argv — 传递给脚本的参数数组,$argc - 参数数量 注意会包含脚本文件名
第一个参数总是当前脚本的文件名,因此 $argv[0] 就是脚本文件名
这个变量仅在 register_argc_argv 打开时可用。可以使用php -i|grep register_argc_argv
查看是否为on
案例
- 脚本
1 | <?php |
- 命令行
1 | php script.php arg1 arg2 arg3 |
- 结果输出
1 | array(4) { |
使用getopt
函数
描述
getopt — 从命令行参数列表中获取选项
通用命令格式 getopt ( string $options [, array $longopts [, int &$optind ]] ) : array
- options 该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。 比如,一个选项字符串 “x” 识别了一个选项 -x。 只允许 a-z、A-Z 和 0-9
- longopts 选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符(–)传入到脚本的选项。 例如,长选项元素 “opt” 识别了一个选项 –opt
- optind 如果optind参数存在,则停止参数解析的索引将被写入该变量
options 可能包含了以下元素
- 单独的字符(不接受值)
- 后面跟随冒号的字符(此选项需要值)
- 后面跟随两个冒号的字符(此选项的值可选)
- 选项的值不接受空格作为分隔符
案例
- 脚本
1 | <?php |
- 命令行
1 | php example.php -fvalue -h |
- 输出
1 | array(2) { |
使用STDOUT
与STDIN
提示用户输入
描述
stdin 标准的输入设备
stdout 标准的输出设备
stderr 标准的错误设备
fwrite()函数首先会向标准的输出设备写一条消息,询问用户输入。然后它会把从标准输入设备获得的用户输入信息读取到一个php变量里,并它把合并成为一个字符串。然后就用fwrite()把这个字符串打印输出到标准的输出设备上
案例
- 脚本
1 | <?php |
- 命令行
1 | php script.php |
- 结果输出
1 | 请输入开始时间:11111 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 观道君的小站!
评论