phpを使用してコマンドをバッチで使用してコンソールスクリプトを作成しようとしていますが、このスクリプトを見つけました。
for(;;){
fwrite(STDOUT, "\n");
$name = fgets(STDIN);
fwrite(STDOUT, "Hello $name");
sleep(1);
}
しかし、それはすべてのループで停止します、私はループを作ってこの関数も使うことができますか?ありがとう ..
phpを使用してコマンドをバッチで使用してコンソールスクリプトを作成しようとしていますが、このスクリプトを見つけました。
for(;;){
fwrite(STDOUT, "\n");
$name = fgets(STDIN);
fwrite(STDOUT, "Hello $name");
sleep(1);
}
しかし、それはすべてのループで停止します、私はループを作ってこの関数も使うことができますか?ありがとう ..
stream_select()
データが STDIN に現れるのを待つために使用できます。オプションのタイムアウト値を使用すると、入力がないときに別のことを行うことができます。次のコードは、何かを入力するまで 200 ミリ秒ごとに "Waiting..." を出力し続けます。
for(;;){
$read = array(STDIN);
$write = NULL;
$except = NULL;
if(stream_select($read, $write, $except, 0, 200000) > 0) {
if($read) {
$name = fgets(STDIN);
fwrite(STDOUT, "Hello $name");
}
} else {
fwrite(STDOUT, "Waiting...\n");
}
}
試してください: ignore_user_abort(true);