包括:具有.php文件扩展名的CSS?

问题描述 投票:14回答:4

我想用PHP封装CSS文件...所以我写了CSS文件的标头,并给了它一个.php文件扩展名,因此... css.php。

如果该页面已被用作包含内容,此方法会起作用吗?还是该新标题与页面所包含的框架冲突?

php css include
4个回答
20
投票

纳尔夫钉牢了。

我愿意:

<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...
?>

15
投票

如果您有一个名为css.php的文件,只需确保第一行设置了正确的内容类型标题即可。您可能还想将会话设置内容(如果有的话)拆分为bootstrap.php。一个从数据库加载一些样式信息的简单示例:

<?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文件。如果您需要从配置参数等中加载某些样式,并且这些样式不会经常更改,则第一个示例应该会非常适合您。


8
投票

HTML文件:<link rel="stylesheet" type="text/css" href="css.php"/>

css.php文件:<?phpheader("Content-type: text/css; charset=utf-8");//your php + css code goes here?>

如果您的CSS.php文件中的第一行代码不是header("Content-type: text/css; charset=utf-8"); 它将不起作用


0
投票

如果includer脚本不发送任何输出,它将起作用,否则,将出现“ 已发送标题”错误。

在包含程序中使用ob_start()可以避免这种情况并使一切正常。

HTML框架与php include无关,因此在这种情况下完全没有冲突。

© www.soinside.com 2019 - 2024. All rights reserved.