包括:css文件扩展名为php?
我想在PHP中打包一个css文件...因此,我为css文件编写了头文件,并为其添加了php扩展,因此... css.php。问题是,如果该页面已被用作包含...或者这个新标题是否与包含在该页面中的框架冲突?包括:css文件扩展名为php?
gnarf钉了它。
我做的:
<link rel="stylesheet" type="text/css" media="screen" href="<? echo TMPL ?>css/name-of-file.css.php">
,然后在.css.php文件的顶部:
<?
header('Content-Type: text/css');
// print out your php-driven css...
?>
如果includer脚本不发送任何输出,它将起作用,否则您将有一个“标题已发送”错误。
在includer中使用ob_start()可以避免这种情况,并使所有的工作。
html框架与php包含无关,所以在这种情况下根本没有冲突。
如果您有一个名为css.php
的文件,请确保第一行设置正确的内容类型标题。如果还没有,您可能还想将会话设置内容(如果有的话)拆分为bootstrap.php
。从DATABSE加载一些样式信息的一个简单的例子:
<?php
header("Content-Type: text/css");
include('bootstrap.php');
// fetch some information to print out our styles
$result = mysql_query("SELECT * FROM site_styles");
while ($row = mysql_fetch_assoc($result)) {
echo $row["selector"]." {\n".$row["css"]."\n}\n";
}
?>
从其他PHP文件,只输出标签包括css.php,你不希望使用PHP include()
功能此任务!
<link rel="stylesheet" type="text/css" href="css.php"/>
虽然因为大多数浏览器会缓存您的css文件很积极,你可能会发现,动态改变该文件的内容并没有做太多好。你可以强制通过添加GET参数到链接的href的更新:
<link rel="stylesheet" type="text/css" href="css.php?<?php echo $cssversion ?>"/>
虽然这是怎么回事,每次完全刷新你的CSS文件中的参数变化。出于这个原因,通常更好的做法是提供静态css文件。如果你有一些需要从配置参数等加载的样式,这些样式不会经常改变,那么第一个例子应该对你很好。
糟透了,看到你的回答有鲨鱼。 – emc 2013-04-15 17:38:26
HTML文件:<link rel="stylesheet" type="text/css" href="css.php"/>
css.php文件:<?php
header("Content-type: text/css; charset=utf-8");
//your php + css code goes here
?>
如果在你的CSS.php文件第一行代码是不是header("Content-type: text/css; charset=utf-8");
它不会工作
我可能会要求您要使用这个'什么css.php'文件来服务?某种形式的数据库生成或什么? – gnarf 2009-09-19 01:00:07
你能显示一些代码吗?至于情况是什么,我有点失落。 – strager 2009-09-19 01:07:29