On Sat, 2003-09-20 at 00:59, Dan Anderson wrote:
> Why are you using php:// below? If stdin is a file './stdin' will
Because it is the correct way to retrieve input from standard input.
http://www.php.net/wrappers.php
> suffice (or the path instead of ./). If you want to run the PHP script
> in stdin you should use one of the following:
> include()
> include_once()
> require()
> require_once()
> See the manual at php.net for pertinent sections...
I don't want to run a script from stdin, I want to retrieve user input
from the keyboard. What the heck are you smoking?
> > if( ($stdin = fopen( 'php://stdin', 'r' )) === false )
> > {
> > echo 'Failed to open STDIN'."\n";
> > exit();
> > }
>
> I seem to remember stream_set_blocking being either experimental or deprecated.
> If I remember correctly its for use with the function fsock_open().
> > stream_set_blocking( $stdin, false );
No stream_set_blocking() is the correct function. The others are
deprecated because they are less generic for streams:
This function was previously called as set_socket_blocking()
and later socket_set_blocking() but this usage is deprecated.
> > $count = 0;
> WTF are you thinking? You really need to read the documentation.
> Instead of this:
You sir, are a moron, you are calling me a moron and yet you are the one
who doesn't know what you are talking about.
> > while( 1 )
> > {
> > echo 'Foo: '.($count++)."\n";
> > if( ($char = fread( $stdin, 1 )) !== false )
> > {
> > echo $char."\n";
> > }
> > else
> > {
> > echo 'Fooo!'."\n";
> > }
> > }
>
> Try:
>
> <?php
>
> $stdin = fopen("./stdin","r");
> while ($stdin AND (!(feof($stdin))))
> { echo fread($stdin,4096); }
>
> ?>
>
> Much simpler, correct?
This is not what I want, I want individual keystrokes as they come in
form the keyboard. I'm quite sure I know what I'm doing.
> BTW: The infinite loop you have above could be the reason your script is
> acting erratically. PHP kills off scripts after they run for so long --
> you may just be catching it in different versions of the loop.
Infinite loop, shmoop, the script ran for less than a second. Long
enough for $count to get as high as 2000 tops. I've run many, MANY
scripts as CGI shell script, and never has it bailed from an infinite
loop successfully in less than a second.
> Also BTW: I understand what you mean when you say CGI but not CLI
> version of PHP, but I really don't think the term CGI applies in this
> case. CGI means Common Gateway Interface -- or a way to execute
> programs in a special directory designed to keep them from r00ting the
> system. In PHP things such as headers are automatic -- no need to type:
I use the term CGI for the mode in which PHP was compiled, NOT, AND I
REPEAT NOT, because I'm using it as a Common Gateway interface.
> print "Content-type: text/html\n\n";
>
> It's a server side scripting language designed to be embedded in things
> like web pages and be able to be run without much security concerns.
> (i.e. not running a CGI perl scrip as /usr/bin/perl (i.e. not in tainted
> mode) -- ouch! and these are the silly things users sometimes do)
Thanks for the lesson, I'll be sure to pretend I didn't know what CGI
is. BTW, if I were a newbie at PHP, your message would make me never
want to make another post. Even in the event you are correct, such a
pathetic response is no way to treat those of lesser knowledge. Now go
read the docs, and learn some more before trying to tell me what's what.
Cheers,
Rob.
--
.------------------------------------------------------------.
| InterJinn Application Framework - http://www.interjinn.com |
:------------------------------------------------------------:
| An application and templating framework for PHP. Boasting |
| a powerful, scalable system for accessing system services |
| such as forms, properties, sessions, and caches. InterJinn |
| also provides an extremely flexible architecture for |
| creating re-usable components quickly and easily. |
`------------------------------------------------------------'
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php