ID: 34972 Comment by: joseph at none-yo-business 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:
Hope this helps someone else, but the workaround I had to do was to fread(stdin) from another script, output to a temp file, then use output in my other script. Yeah its ugly, but at least I have an interactive shell (or should that be shells :) Dear PHP developers. I love php. Its the glue that holds everything I do together.... Please take this in the best way possible, WTF? This bug should not be there... And 4 years after the fact?! Please help me love PHP even more, and fix this bug. Previous Comments: ------------------------------------------------------------------------ [2009-11-14 15:31:44] raskin at aoeu dot ru Confirmed on Nov 14th, 2009 with PHP 5.2.11 on WinXp Yet no useful fix. Linux (Ubuntu 9.10 is just fine) ------------------------------------------------------------------------ [2009-07-22 22:58:50] xektrum at gmail dot com 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 ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ 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