使用 PHP 的交互式 shell
2022-08-30 14:26:07
只是想知道,是否有可能单独使用PHP创建一个交互式shell。我的意思是像你对数据库,python等所做的那样。
如果是,如何?
只是想知道,是否有可能单独使用PHP创建一个交互式shell。我的意思是像你对数据库,python等所做的那样。
如果是,如何?
是的,这是可能的。为了具有交互性,程序必须能够等待并读取来自 stdin 的用户输入。在 PHP 中,您可以通过打开一个文件描述符来读取 stdin,即“php://stdin
”。从不同问题的答案中得出,下面是PHP中交互式用户提示的示例(当然,当从命令行运行时):
echo "Continue? (Y/N) - ";
$stdin = fopen('php://stdin', 'r');
$response = fgetc($stdin);
if ($response != 'Y') {
echo "Aborted.\n";
exit;
}
当然,要获得完整的输入行而不是单个字符,您需要fgets()
而不是fgetc()。
。根据你的程序/shell 将执行的操作,整个程序可能被构造为一个大的连续循环。希望这能让您了解如何开始。如果你想变得非常花哨(CLI伪GUI),你可以使用ncurses。
由于这个问题已经被提出并回答,因此PHP中添加了更好的解决方案。在所有最近的PHP版本中,您可以轻松获取用户输入,如下所示:
$input = fgets(STDIN);