On 28 Feb 2008, at 12:29, Jochem Maas wrote:
Stuart Dallas schreef:
On 28 Feb 2008, at 11:52, Stut wrote:
On 28 Feb 2008, at 11:39, Jochem Maas wrote:
I can't seem to manage to buffer output (of an included file) in a CLI script,
the following does not work:


// buffer output so we can avoid the shebang line being output (and strip it from the output we log)
                 $oldIFvalue = ini_set('implicit_flush', false);
                 ob_start();

                 if ([EMAIL PROTECTED] $script) {
                     ob_end_clean();
                 } else {
                     $output = explode("\n", ob_get_clean());
if ($output[0] && preg_match('%^#!\/%', $output[0]))
                         unset($output[0]);
                 }

                 ini_set('implicit_flush', $oldIFvalue);


the reason I'm wanting to do this is, primarily, in order to stop the shebang line that *may*
be present in the included script from being output to stdout.

This works...

----<test.php>----
#!/usr/bin/php
<?php
        echo "arse\n";
        echo Inc('testinc.php');

        function & Inc($f)
        {
                ob_start();
                @include($f);
                $content = ob_get_contents();
                ob_end_clean();
                if (substr($content, 0, 2) == '#!')
                {
                        $content = substr($content, strpos($content, "\n")+1);
                }
                return $content;
        }
----</test.php>----

----<testinc.php>----
#!/usr/bin/php
<?php
        echo "testinc\n";
----</testinc.php>----

----<output>----
[EMAIL PROTECTED]:~$ ./test.php
arse
testinc
----</output>----

-Stut

--
http://stut.net/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to