RE: [PHP] eval() question
| From: | Michael Sims | Date: | Wed, 21 Apr 2004 14:27:22 +0000 |
| Subject: | RE: [PHP] eval() question | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-184133@lists.php.net to get a copy of this message | ||
>> OrangeHairedBoy wrote:
>>> I would like to use eval() to evaluate another PHP file and store
>>> the output of that file in a string.
>>
>> You could use output buffering to do this a bit more easily, I think:
>>
>> ob_start();
>> include('colors.php');
>> $colors = ob_get_contents();
>> ob_end_clean();
>
> While that is an awesome idea, I don't think it will work for me.
>
> There's two reasons why. First, colors.php is actually stored in a
> MySQL server.
>
> Second, before the PHP code inside colors.php I want to be able to
> replace data inside that file. For example:
>
> $file = str_replace( "Green" , "Orange" , $file );
Ok, then a slight adjustment should work:
$file = file_get_contents( "colors.php" );
$file = str_replace( "Green" , "Orange" , $file );
ob_start();
eval( $file );
$colors = ob_get_contents();
ob_end_clean();
I've never done that personally, but the documentation for eval() states:
In PHP 4, eval() returns NULL unless return is called in the evaluated code,
in which case the value passed to return is returned.
And then:
Tip: As with anything that outputs its result directly to the browser, you
can use the output-control functions to capture the output of this function,
and save it in a string (for example).
HTH...