Php命令行即时输出

mah*_*n3d 6 php command-line

我正在编写一个命令行php脚本,它会对控制台窗口做一些输出,它看起来很好只有问题就是我输入的时候

php myfilename.php -....
Run Code Online (Sandbox Code Playgroud)

在控制台窗口中,只有在完全执行后,它才会将结果输出到窗口中.

我想要的是像下面那样在飞行中这样做

customer id: 1223 skipped.
customer id: 22233 added..
Run Code Online (Sandbox Code Playgroud)

...等等

另一个问题是添加\n\r到printf函数没有进入新行...

关于这些问题的任何想法..

小智 5

这可能是由于输出缓冲.您可以ob_flush()在需要时手动刷新缓冲区.

至于你的第二个问题,Microsoft Windows上换行的正确顺序是"\r\n",而不是相反.


sar*_*old 5

首先,Windows 风格的行尾标记是\r\n,而不是\n\r。曾经使用过的系统并不多\n\r,但它们非常罕见,您现在可以忘记它们。

其次,输出被块缓冲的可能性很大——您可以使用在每个输出命令之后ob_implicit_flush(1)自动插入一个flush()命令。或者,您可以flush()在需要刷新输出时手动调用。