ID: 34972 Comment by: xektrum at gmail dot com Reported By: VJTD3 at VJTD3 dot com Status: Assigned Bug Type: Streams related Operating System: win32 only PHP Version: 5.2CVS-2008-07-15 Assigned To: pajoye New Comment:
I can confirm this bug affects PHP 5.3.0. today at July 22 2009 almost 4 years from its submittion and still no fix. This is very important since you can't create a really interactive CLI application with this issue, and stops developers from choosing PHP to theirs CLI/CMD/Console application (Although this could affect PHP-GTK users and developers) Hope this fix soon Regards Previous Comments: ------------------------------------------------------------------------ [2009-04-16 17:48:36] frase at cs dot wisc dot edu I'm having the same trouble. With php-5.3.0-beta1 on Linux it works fine, both on STDIN and on fopen('/dev/ttyS0'). stream_set_blocking() returns true, stream_get_meta_data() confirms, and the stream behaves as if non-blocking. But with php-5.2.9 on Windows 2000 it doesn't work for either STDIN or the serial port (COM1 instead of /dev/ttyS0). stream_set_blocking() returns false, stream_get_meta_data() shows blocking, and the streams do in fact block. I also tried stream_set_timeout() with a tiny value, to simulate the effect, but that also returns false and doesn't work. ------------------------------------------------------------------------ [2008-10-24 16:11:54] j...@php.net Assigned to the windows port maintainer. ------------------------------------------------------------------------ [2008-03-15 10:57:09] VJTD3 at VJTD3 dot com on *nix it seems to be solved. easy way to test: php -r "stream_set_blocking(STDIN, FALSE);echo fread(STDIN, 10);" on *nix it instantly exits. (correct behavior) on windows it will hang for input. (incorrect behavior, it's ignoring the non blocking setting.) tested on 5.2.5 ------------------------------------------------------------------------ [2007-08-19 20:51:34] donnyk at gmail dot com i also have the same problem, i've tried the latest snapshot on windows to no avail. It works on my linux systems however. ------------------------------------------------------------------------ [2007-08-10 13:01:48] VJTD3 at VJTD3 dot com <?php stream_set_blocking(STDIN, FALSE); echo fread(STDIN, 10); ?> notice how it just sits there? (blocking) it should exit instantly with a null echo. (same as a tcp connection where if you just do a read that is too fast with nonblocking it never gets a chance to fetch the data.) what is happening is that php is blocking waiting for input (specifically enter (line ending)) problem: if you are echoing debug information and want to use key functionality in tandem you can't because everything is blocked till you hit enter. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/34972 -- Edit this bug report at http://bugs.php.net/?id=34972&edit=1