如何编写命令行交互式 PHP 脚本?

2022-08-30 19:36:29

我想写一个可以从命令行使用的PHP脚本。我希望它提示并接受一些项目的输入,然后吐出一些结果。我想在PHP中执行此操作,因为我所有的类和库都在PHP中,我只想为一些事情做一个简单的命令行界面。

提示和接受重复的命令行输入是让我绊倒的部分。我该怎么做?


答案 1

PHP 手册中的 I/O 流页面描述了如何使用 STDIN 从命令行读取行:

<?php
 $line = trim(fgets(STDIN)); // reads one line from STDIN
 fscanf(STDIN, "%d\n", $number); // reads number from STDIN
?>

答案 2

来自 PHP:从键盘读取 – 通过键入从键盘控制台获取用户输入

你需要一个特殊的文件:php://stdin 它代表标准输入。

print "Type your message. Type '.' on a line by itself when you're done.\n";

$fp = fopen('php://stdin', 'r');
$last_line = false;
$message = '';
while (!$last_line) {
    $next_line = fgets($fp, 1024); // read the special file to get the user input from keyboard
    if (".\n" == $next_line) {
      $last_line = true;
    } else {
      $message .= $next_line;
    }
}

推荐