php - PHP:如何跟踪没有输入数据的超时?
问题描述
有从 STDIN 接收输入行的代码:
#!/usr/bin/php
<?php
while (false !== ($line = fgets(STDIN))) {
if (preg_match('/start/',$line)) {
echo $line , "\n";
}
}
?>
我的问题是:如何跟踪缺少输入数据的超时 1 分钟并通知是否以防万一?
解决方案
我从这里使用 hek2mgl 的答案解决了我的问题 [ PHP CLI - 一段时间后要求用户输入或执行操作
这是我的代码:
#!/usr/bin/php
<?php
echo "input something ... (5 sec)\n";
$stdin = fopen('php://stdin', 'r');
while(true) {
$read = array($stdin);
$write = $except = array();
$timeout = 5;
if(stream_select($read, $write, $except, $timeout)) {
$line = fgets($stdin);
if (preg_match('/start/',$line)) {
echo $line , "\n";
}
} else {
echo "you typed nothing\n";
}
}
?>
推荐阅读
- aws-lambda - SAM 模板 - 使用 Lambda 授权器和简单响应定义 HttpApi
- php - 打开购物车模块或扩展以创建批量产品创建
- javascript - 无法在 Crypto 中重现 SubtleCrypto
- heroku - 无法登录 Heroku
- c# - EF 核心:更新特定字段得到跟踪错误
- csv - Symfony - 将GET参数传递给另一条路线?
- go - 使用 Pion/Webrtc 的 Nack 响应者拦截器
- jenkins - 你如何在jenkins中指定cppcheck参数
- angular - 使用过滤器 rxjs - angular 的重复代码,如何改进它?
- python - BeautifulSoup: html-encode 特殊字符