PHP的断点

时间:2017-01-21 01:41:57

标签: php loops events command-line-interface

我的脚本是从命令行运行的,它在循环中执行大量的数据库和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
} 

1 个答案:

答案 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

}