циклы — точки останова с переполнением стека

Мой скрипт, который запускается из командной строки, выполняет много вызовов 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
}

2

Решение

Немного опоздал на этот вопрос, но вот метод, который вы можете использовать. Единственным недостатком является то, что он не работает точно так, как запрошено. Чтобы продолжить цикл, нажмите Войти ключ. Чтобы выйти из цикла, вы должны набрать 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

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector