如何使用PHP代码而不是HTML代码导入/包含CSS文件?

Sha*_* TJ 27 html css php import

我搜索了很多,但似乎我做错了什么.

我想做这个:

<?php
include 'header.php';
include'CSS/main.css';
...
?>
Run Code Online (Sandbox Code Playgroud)

但是,我的页面打印CSS代码.

注意:我想使用PHP来包含CSS文件,而不是使用我也想要将我的CSS文件重命名为PHP文件,就像一些网站提到的那样.

有线索吗?

非常感谢.

flo*_*ori 61

你必须使用<style>标签包围CSS :

<?php include 'header.php'; ?>
<style>
<?php include 'CSS/main.css'; ?>
</style>
...
Run Code Online (Sandbox Code Playgroud)

PHP也include可以正常.css结束.通过这种方式,您甚至可以在CSS文件中使用PHP.这对于将颜色组织为变量非常有帮助.

  • 这是最好的解决方案,PHP包括不一定要结束`.php`.另外`<style>`标签不需要回显,所以`<style> <?php包含'style.css'; ?> </ style>`可用于提高可读性. (10认同)
  • @Sarah它绝对应该工作-所以问题几乎可以肯定是这样的:当执行include()时,您需要一个基于文件系统的路径,而在文档中所有内容都是基于Web根的。因此,您的php找不到CSS文件。一个简单的解决方法是使用__ DIR __(大写的DIR,两侧都有双下划线,没有空格;一个php的魔术常数),它将为您提供所在文件的文件系统路径;那么您只需要相对就可以了。 (2认同)

Fla*_*ash 39

您将CSS代码作为文本包含在PHP页面中.为什么不以传统方式链接呢?

<link rel="stylesheet" href="CSS/main.css" type="text/css">
Run Code Online (Sandbox Code Playgroud)

  • 这个(或@import)是在页面中包含CSS的最佳方式.如果您使用PHP将CSS文件的内容转储到HTML中,那么每次用户请求页面时,他们都必须将CSS文件的全部内容作为HTML的一部分下载.但是,如果你使用这种标签,浏览器可以单独请求CSS,并且,当它下次看到对同一CSS文件的引用时,它会说"哦,我已经有了",并且没有费心请求它.这将使用户的速度更快,并且意味着您的Web服务器工作量减少. (8认同)
  • 是的,只需打印安德鲁使用PHP代码给你的东西,它将"通过PHP链接css" (3认同)

ldg*_*ldg 8

您可以使用:

<?php
$css = file_get_contents('CSS/main.css');
echo $css;
?>
Run Code Online (Sandbox Code Playgroud)

并假设css文件已经没有,请将上面的内容包装在:

<style type="text/css">
...
</style>
Run Code Online (Sandbox Code Playgroud)


dan*_*ton 7

要使用"include"来包含CSS,你必须告诉PHP你正在使用CSS代码.将其添加到CSS文件的标题中,并将其设为main.php(或styles.css,或其他):

header("Content-type: text/css; charset: UTF-8");
Run Code Online (Sandbox Code Playgroud)

可能与一些用户的连接帮助,但它在理论上(读:我没有测试过)增加了处理器开销到你的服务器,并根据史蒂夫索德,因为您的计算机可以同时下载多个文件,使用包括可能会比较慢.如果你把你的CSS分成十几个文件,也许它会更快?

Steve的博文:http://www.stevesouders.com/blog/2009/04/09/dont-use-import/ 来源:http://css-tricks.com/css-variables-with-php/


小智 6

这是一篇较旧的文章,但是由于该信息今天仍然相关,因此附加选项可能会对其他人有所帮助。

  • 根据Stefan 的回答为文件路径定义一个常量。该定义可以放置在 PHP 页面本身的顶部,或者放置在包含/必需的外部文件(例如 config.php)中。(http://php.net/manual/en/function.include.php

  • 回显 PHP 标签中的常量,然后直接在后面添加文件名。就是这样!
    也适用于其他链接文件,例如 JavaScript。

<?php
define('CSS_PATH', 'template/css/'); //define CSS path 
define('JS_PATH', 'template/js/'); //define JavaScript path 
?>
<!-- Doctype should be declared, even in PHP file -->
<!DOCTYPE html> 
<html>
<head>
<link rel="stylesheet" type="text/css" href="<?php echo CSS_PATH; ?>main.css">
<script type="text/javascript" src="<?php echo JS_PATH; ?>main.js"></script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


小智 5

<?php
  define('CSSPATH', 'template/css/'); //define css path
  $cssItem = 'style.css'; //css item to display
?>    
<html>
<head>
 <title>Including css</title>
  <link rel="stylesheet" href="<?php echo (CSSPATH . "$cssItem"); ?>" type="text/css">
</head>
<body>
...
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

包含您的 CSS 项目