* Thus wrote Justin French ([EMAIL PROTECTED]):
> Hi all,
> 
> I'm forcing my style sheets (.css) though the PHP parser, so that they 
> can take advantage of some color variables and global config settings 
> via include files, eg:
> 
> body {
>       background-color: #<?=$col['1']?>;
>       }
> 
> however, I've noticed that when viewing the CSS file in a browser now, 
> it looks more like a HTML document int he browser (variable width 
> fonts, no newlines, etc) rather than other css files (wich look like 
> they have <pre> tags aroun them (newlines visible, fixed-width font, 
> etc).

That is IE (or your browser) doing that, because it saw a header
text/html.

> 
> So, my assumption is that pushing the .css file through PHP is putting 
> the wrong header on the file (text/html) rather than text/css -- or 
> perhaps something else -- my header knowledge is poor.

Yes php by default will send out text/html.

> 
> Anyway, the pages and linked CSS files *work* but do not validate any 
> more, witha  warning "You can't import an HTML document".
> 
> 
> What/how should I force the correct headers on these PHP-parsed CSS 
> files?

header('Content-Type: text/css');

On a side note,  You should also make your css get cached by the
browser otherwise it sort of defeats one of the purposes of having
the style seperate from the html (the broswer doesn't have to
request it all the time).

So what I would do would is add a Last-Modified header. Usually I
stat() $PHP_SELF (if possible) and get the last modified then
translate the unix timestamp to:

header('last-modified: ' . date('U', $ts_of_php_self));

This way the browser should at least keep it in the cache for the
session.

HTH, 

Curt
-- 
"I used to think I was indecisive, but now I'm not so sure."

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

Reply via email to