Re: eval() question
| From: | OrangeHairedBoy | Date: | Wed, 21 Apr 2004 14:33:02 +0000 |
| Subject: | Re: eval() question | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-184134@lists.php.net to get a copy of this message | ||
Thanks Michael & Marek! It worked! :)
"Michael Sims" <michaels@crye-leike.com> wrote in message
news:MIEKLEPPLHOCJNAGNGPHEEBCCHAA.michaels@crye-leike.com...
> >> 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...