Home »
Imported messages »
comp.lang.php »
Detecting Redirected Output
Detecting Redirected Output [message #174109] |
Sun, 22 May 2011 01:06  |
Bob Smith
Messages: 11 Registered: October 2010
Karma: 0
|
Junior Member |
|
|
Running under Win7, a script I'm writing needs to vary its behavior
depending upon whether or not the output from PHP is being redirected.
That is, I want to know from within the PHP script whether it's called as
php foo.php
or
php foo.php > outfile
None of the Output Control Functions appears to be helpful.
Way back in DOS days, there was an IOCTL call which the program could
use to distinguish those two cases. Is there anything comparable in PHP?
--
_________________________________________
Bob Smith -- bsmith(at)sudleydeplacespam(dot)com
To reply to me directly, delete "despam".
|
|
|
|
Re: Detecting Redirected Output [message #174114 is a reply to message #174109] |
Sun, 22 May 2011 11:06   |
Thomas 'PointedEars'
Messages: 701 Registered: October 2010
Karma: 0
|
Senior Member |
|
|
Bob Smith wrote:
> Running under Win7, a script I'm writing needs to vary its behavior
> depending upon whether or not the output from PHP is being redirected.
> That is, I want to know from within the PHP script whether it's called as
>
> php foo.php
>
> or
>
> php foo.php > outfile
>
> None of the Output Control Functions appears to be helpful.
>
> Way back in DOS days, there was an IOCTL call which the program could
> use to distinguish those two cases. Is there anything comparable in PHP?
In PHP, yes; but not on Windows, as the POSIX extension is not available
there (according to the manual):
<http://lmgtfy.com/?q=php+cli+redirection+-http>
PointedEars
--
Anyone who slaps a 'this page is best viewed with Browser X' label on
a Web page appears to be yearning for the bad old days, before the Web,
when you had very little chance of reading a document written on another
computer, another word processor, or another network. -- Tim Berners-Lee
|
|
|
|
Re: Detecting Redirected Output [message #174123 is a reply to message #174114] |
Sun, 22 May 2011 16:17  |
Bob Smith
Messages: 11 Registered: October 2010
Karma: 0
|
Junior Member |
|
|
On 5/22/2011 7:06 AM, Thomas 'PointedEars' Lahn wrote:
> Bob Smith wrote:
>
>> Running under Win7, a script I'm writing needs to vary its behavior
>> depending upon whether or not the output from PHP is being redirected.
>> That is, I want to know from within the PHP script whether it's called as
>>
>> php foo.php
>>
>> or
>>
>> php foo.php> outfile
>>
>> None of the Output Control Functions appears to be helpful.
>>
>> Way back in DOS days, there was an IOCTL call which the program could
>> use to distinguish those two cases. Is there anything comparable in PHP?
>
> In PHP, yes; but not on Windows, as the POSIX extension is not available
> there (according to the manual):
>
> <http://lmgtfy.com/?q=php+cli+redirection+-http>
Having just learned that this is trivial in Python, I looked more
carefully at PHP on Windows and found a couple of ways to tell if STDOUT
has been redirected:
1. $fd = fopen ('php://stdout', "w");
if (ftell ($fd) === false)
echo "STDOUT not redirected.\n";
else
echo "STDOUT redirected.\n";
fclose ($fd);
2. $fd = fopen ('php://stdout', "w");
$a = fstat ($fd);
if ($a['dev'] != 0) // or ['rdev']
echo "STDOUT not redirected.\n";
else
echo "STDOUT redirected.\n";
fclose ($fd);
There also is a difference in $a['mode'] which I did not pursue.
--
_________________________________________
Bob Smith -- bsmith(at)sudleydeplacespam(dot)com
To reply to me directly, delete "despam".
|
|
|
Goto Forum:
Current Time: Mon Feb 24 08:06:31 GMT 2025
Total time taken to generate the page: 0.02511 seconds