Приостановка процесса PHP через командную строку

Я запускаю это через командную строку. Когда цикл работает, могу ли я приостановить выполнение кода? В идеальном случае я мог бы нажать клавишу, чтобы приостановить, а затем еще одну клавишу, чтобы возобновить. Если я не нажму клавишу паузы, цикл продолжится до $ i == 1000

<?php

echo "How long should the code sleep between increments?\n";
echo ">> ";

$sleep = trim(fgets(STDIN));

for ($i = 1; $i <= 1000; $i++) {
echo "$i\n";
sleep($sleep);
}

Это сильно упрощенный пример моей реальной потребности в коде.

1

Решение

Я не уверен, что мой код — лучшее решение или нет, но он работает.

function checkResume()
{
$r = false;

while (!$r) {
if (fgets(STDIN) == "r") {
$r = true;
}
}

}

function checkPause()
{
$input = fgets(STDIN);
if (!empty($input) && $input == "p") {
return true;
}
return false;
}

echo "How long should the code sleep between increments?\n";
echo ">> ";

$sleep = trim(fgets(STDIN));

echo "\nStart ...\n";

stream_set_blocking(STDIN, false);
for ($i = 1; $i <= 1000; $i++) {
if (checkPause()) {
echo "wait for resume \n";
checkResume();
}

echo "$i\n";
sleep($sleep);
}

Надеюсь, это поможет.

2

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

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

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