I've seen something similar on Debian; it might be a patch that your distro is shipping on top of PHP.
Edward Excerpts from Alain Williams's message of Sat Sep 14 04:45:41 -0700 2013: > Hi, > > I am running a PHP script at the command line and piping the output through > less: > > ./myScript | less > > Since less is an interactive program it puts the terminal into 'raw' mode so > that it can read characters one at a time. However, when I do the above I find > that the commands that I type to less are echoed back to me and not acted on > until I type <RETURN>. This is not as it should be. > > The sript is not doing anything clever, just generating 100 lines: > for($i = 0; $i < 100; $i++) > echo "i=$i\n"; > > If I run the script under strace I see: > > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) > = 0 > > What is happening is that PHP is putting the terminal into cooked mode. > > > I can get it to not do this by connecting stdin to /dev/null: > > ./myScript < /dev/null | less > > another way of getting it to work is (and this shows that it really is PHP > that > is messing the tty modes): > > ./myScript < /dev/null | (sleep 10; less) > > However: PHP should not set the terminal to cooked mode in the first place. > > Is there any way in which I can get PHP to not do this ? > > TIA > > I am running PHP 5.3.3 on CentOS 6. > > I posted this to php-gene...@lists.php.net a few days ago, but did not get a > sensible reply. > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php