Мой скрипт, который запускается из командной строки, выполняет много вызовов DB и API внутри цикла, но для проверки мне нужно изменить условия и поместить die()
и запускайте скрипт снова и снова.
Есть ли способ продвинуть итерацию только по нажатию Return
завершить выполнение скрипта при нажатии Esc
в противном случае просто подождите, пока не произойдет одно из указанных выше событий ввода?
$arr = range(0, 10000);
foreach ($arr as $n) {
// if ENTER
echo $n;
// elseif ESC
die()
// else
// wait for ENTER or ESC
}
Немного опоздал на этот вопрос, но вот метод, который вы можете использовать. Единственным недостатком является то, что он не работает точно так, как запрошено. Чтобы продолжить цикл, нажмите Войти ключ. Чтобы выйти из цикла, вы должны набрать exit
с последующим Войти ключ.
<?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
}
Других решений пока нет …