Re: Re: Call to object function, want to PHP interpret returned string

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2009/7/6 John Allsopp <john@xxxxxxxxxxxxxxxxx>:
> David Robley wrote:
>>
>> John Allsopp wrote:
>>
>>
>>>
>>> Hi
>>>
>>> At the top of a webpage I have:
>>>
>>> <?php
>>> include_once("furniture.php");
>>> $myFurniture = new furniture();
>>> echo $myFurniture->getTop("my company title");
>>> ?>
>>>
>>> to deliver the first lines of HTML, everything in HEAD and the first
>>> bits of page furniture (menu, etc).
>>>
>>> In the furniture object in getTop(), I want to return a string that
>>> includes the CSS file that I call with an include_once. But the
>>> include_once isn't interpreted by PHP, it's just outputted. So from:
>>>
>>>        $toReturn = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0
>>> Transitional//EN' ........
>>>            <?php
>>>                include_once('styles3.txt');
>>>            ?>
>>>            .......";
>>>
>>>        return $toReturn;
>>>
>>> I get
>>>
>>> <?php
>>> include_once('styles3.txt');
>>> ?>
>>>
>>> in my code.
>>>
>>> Do I really have to break up my echo $myFurniture->getTop("my company
>>> title"); call to getTopTop, then include my CSS, then call getTopBottom,
>>> or can I get PHP to interpret that text that came back?
>>>
>>> PS. I may be stupid, this may be obvious .. I don't program PHP every day
>>>
>>> Thanks in advance for your help :-)
>>>
>>> Cheers
>>> J
>>>
>>
>> First guess is that your page doing the including doesn't have a filename
>> with a .php extension, and your server is set to only parse php in files
>> with a .php extension.
>>
>>
>>
>> Cheers
>>
>
> Ah, thanks. It's a PHP object returning a string, I guess the PHP
> interpreter won't see that.
>
> So, maybe my object has to write a file that my calling file then includes
> after the object function call. Doesn't sound too elegant, but is that how
> it's gotta be?

You appear to be looking for the eval function: http://php.net/eval

However, in 99.99% of cases using eval is not the right solution. In
your case there are two ways to solve it.

The first way, assuming the thing you're trying to include is a
stylesheet, is to use an external link to a CSS file. That would be
the "normal" way to include a stylesheet in an HTML page and is far
more efficient that including it inline.

If it's not just a stylesheet that you're including then you'll want
to load the file in the getTop method. For example...

$toReturn = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0
Transitional//EN' ........";
$toReturn.= file_get_contents('styles3.txt');
$toReturn.= '..........';

Simple as that.

-Stuart

-- 
http://stut.net/

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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux