Stuart wrote:
> 2009/7/6 John Allsopp <
john@...>:
>
>> 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
>
>
Thanks guys. Yes, actually file_get_contents didn't work for me, and yes
you're right, of course I should be including my CSS like <LINK
rel='stylesheet' type='text/css' media='screen' href='style3.css'
title='style1'> in the header.
The style3.txt file I was trying to PHP include was there so I could
include more than one stylesheet and make just one amendment. One for
printing and I'm guessing one for mobile. All that file contained was
the <LINK... line above.
That was legacy code. Now I have a furniture object, of course, I can
put my stylesheet code in one place there just as part of the header,
and have no need for style3.txt.
Thanks for all your help.
J
--
PHP General Mailing List (
http://www.php.net/)
To unsubscribe, visit:
http://www.php.net/unsub.php