我试图使用php批量生成带有命令的控制台脚本, 我找到了这个脚本:
for(;;){
fwrite(STDOUT, "\n");
$name = fgets(STDIN);
fwrite(STDOUT, "Hello $name");
sleep(1);
}
但它在每个循环停止, 我可以制作一个循环并使用此功能吗? 谢谢..
答案 0 :(得分:4)
您可以使用stream_select()
等待数据显示在STDIN中。可选的超时值允许您在没有输入时执行其他操作。以下代码将每隔200毫秒继续打印“等待...”,直到您输入内容:
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");
}
}
答案 1 :(得分:-1)
尝试:ignore_user_abort(true);