我的脚本是从命令行运行的,它在循环中执行大量的数据库和API调用,但要测试我必须更改条件并放置die()
并反复运行脚本。< / p>
有没有办法只在按Return
时推进迭代,按下Esc
结束脚本执行,否则只需等待直到上述任何一个输入事件发生?
$arr = range(0, 10000);
foreach ($arr as $n) {
// if ENTER
echo $n;
// elseif ESC
die()
// else
// wait for ENTER or ESC
}
答案 0 :(得分:0)
这个问题有点晚了,但这是一个你可以使用的方法。唯一的缺点是它不能完全按照要求工作。要继续循环,请按 Enter 键。要退出循环,您必须键入exit
,然后键入 Enter 键。
<?php
$arr = range(0, 10000);
$handle = fopen ("php://stdin","r");
foreach ($arr as $n) {
$line = fgets($handle);
// if user types "exit" and ENTER
if (trim($line) == "exit") {
die();
}
echo $n;
// Do DB and API calls here
}