-1

phpを使用してコマンドをバッチで使用してコンソールスクリプトを作成しようとしていますが、このスクリプトを見つけました。

for(;;){

fwrite(STDOUT, "\n");
$name = fgets(STDIN);
fwrite(STDOUT, "Hello $name");

sleep(1);
}

しかし、それはすべてのループで停止します、私はループを作ってこの関数も使うことができますか?ありがとう ..

4

2 に答える 2

4

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");
    }
}
于 2012-09-25T14:36:49.853 に答える
-1

試してください: ignore_user_abort(true);

http://php.net/manual/en/function.ignore-user-abort.php

于 2012-09-25T14:31:28.420 に答える