当前位置: 首页 > 面试题库 >

使用PHP的交互式shell

陶宏浚
2023-03-14
问题内容

只是想知道,是否有可能单独使用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()。根据您的程序/外壳将执行的操作,整个程序可能被构造为一个大的连续循环。希望这能给您一个入门的思路。如果您
真的 想花哨(CLI伪GUI),则可以使用ncurses。



 类似资料:
  • 有没有办法只使用Docker Compose在容器中启动一个交互式shell?我在我的docker-compose.yml: 当我使用docker-compose up启动这个容器时,它会立即退出。是否有任何标志可以添加到命令中,或者作为的附加选项来启动交互式shell? 我知道有本机docker命令选项来实现这一点,只是好奇是否也可以只使用docker Compose。

  • 我想用php在远程计算机上运行一个C程序。最终目标是使用手机或任何其他计算机上的web浏览器控制程序。 我的C程序在几十分钟内从不同的传感器获取数据。它在linux中从命令行运行,我可以通过按计算机键盘上的“q”键来关闭它。主线程如下所示: 每个线程执行一些printf以给出每个传感器的状态。我想在我的手机上监测这些值,并有一个按钮来终止远程程序。 我可以使用system()、open()或pro

  • 原文:Interactive navigation 所有图形窗口都带有导航工具栏,可用于浏览数据集。 以下是工具栏底部的每个按钮的说明: Home(首页)、Forward(前进)和Back(后退)按钮: 这些类似于 Web 浏览器的前进和后退按钮。 它们用于在之前定义的视图之间来回浏览。 它们没有意义,除非你已经使用平移和缩放按钮访问了其他地方。 这类似于尝试在访问新页面之前单击 Web 浏览器上

  • 你亦可以选择进行交互式的rebase。这种方法通常用于在向别处推送提交之前对它们进行重写。交互式rebase提供了一个简单易用的途径让你在和别人分享提交之前对你的提交进行分割、合并或者重排序。在把从其他开发者处拉取的提交应用到本地时,你也可以使用交互式rebase对它们进行清理。 如果你想在rebase的过程中对一部分提交进行修改,你可以在'git rebase'命令中加入'-i'或'--inte

  • 1.8. 使用 Python 的交互 Shell 既然我们已经安装了 Python , 那么我们运行的这个交互shell是什么东西呢? Python 扮演着两种角色。 首先它是一个脚本解释器, 可以从命令行运行脚本, 也可以在脚本上双击, 象运行其他应用程序一样。它还是一个交互 shell, 可以执行任意的语句和表达式。 这一点对调试、快速组建和测试相当有用。我甚至知道一些人把 Python 的交

  • 原文:Using matplotlib in a python shell 警告 该页面的内容已严重过时。 默认情况下,matplotlib 将绘图延迟到脚本结束,因为绘图可能是开销大的操作,并且你可能不想在每次更改单个属性时更新绘图,而是只在所有属性更改后更新一次。 但是在 python shell 中工作时,通常需要用每个命令更新绘图,例如,在更改xlabel()或一行的标记样式之后。 虽然这