In response to php at michielvleugel dot com:
This does not seem to be the case with PHP 5.2.0 and FreeBSD 5.4.
#!/usr/local/bin/php
<?php
$tell = ftell(STDIN);
var_dump($tell);
?>
root@localhost:/home/david# echo Hello World | ./test.php
int(0)
root@localhost:/home/david# ./test.php
int(6629927)
When something is piped to the script, it returns an integer value of 0, however, it also returns an integer when nothing is piped to the script.
The code should be modified to this:
#!/usr/local/bin/php
<?php
$tell = ftell(STDIN);
if ($tell === 0)
echo "Something was piped: " . fread(STDIN,256) . "\n";
else
echo "Nothing was piped\n";
?>
And the result is:
root@localhost:/home/david# echo Hello World | ./test.php
Something was piped: Hello World
root@localhost:/home/david# ./test.php
Nothing was piped