【问题标题】:How to implement "Press Q at any time to quit" in PHP如何在PHP中实现“随时按Q退出”
【发布时间】:2017-08-12 03:51:00
【问题描述】:

我有一个基于终端的 php 程序,它基本上只是在一个大的 for 循环中运行,做了一堆东西然后退出。我希望能够中断循环,暂停或退出应用程序。目前我必须按 ^C 退出应用程序(或从另一个终端屏幕将其终止)。有什么想法可以实现吗?

Running program... 
[Press Q to quit and <spacebar> to pause at any time]
text
text
text
...
more text scrolling by

我知道如何退出和如何暂停,这很容易,但我不确定如何在执行大量其他功能时监控输入。

非常感谢!

【问题讨论】:

标签: php


【解决方案1】:

在这里找到答案:Reading line by line from STDIN without blocking

感谢上面的评论者,他们给了我一些搜索参数,最终得到了正确的答案。

解决方案在stream_set_blocking中,如下图:

<?php
  $stdin = fopen('php://stdin', 'r');
  stream_set_blocking ( $stdin , 0 );

  for( $x=0; $x <=10; $x++) {
  echo "$x\n";

  $line = fgets($stdin);  //Doesn't wait for input because blocking is turned off!
  if (! empty($line)) {
        die();
  }
}
?>

【讨论】:

  • 非常棒的解决方案。
猜你喜欢
  • 1970-01-01
  • 2019-03-12
  • 2017-04-26
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 2020-02-06
  • 2020-12-16
  • 1970-01-01
相关资源
最近更新 更多