【问题标题】:How to import/include a CSS file using PHP code and not HTML code?如何使用 PHP 代码而不是 HTML 代码导入/包含 CSS 文件?
【发布时间】:2011-09-13 00:47:25
【问题描述】:

我用谷歌搜索了很多,但似乎我做错了什么。

我想这样做:

<?php
include 'header.php';
include'CSS/main.css';
...
?>

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

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

有什么线索吗?

非常感谢。

【问题讨论】:

  • 您希望将 CSS 解释为 PHP,还是希望页面使用该 CSS 文件来显示 HTML?
  • 为什么要包含一个css文件而不使用它?
  • 您的问题有点令人困惑,因为不清楚您为什么要这样做。 CSS 旨在影响页面的外观。只有当用户的浏览器读取 CSS 并将其应用于 HTML 时,它才能做到这一点。浏览器不会收到您的 PHP 代码,因此它要么必须查看对 CSS 文件的引用并能够获取它,要么查看嵌入在 HTML 中的 CSS。您的意思是哪一个出现在 HTML 中:对 CSS 文件的引用,还是原始 CSS 代码?如果两者都不是,那么将 CSS 引入 PHP 脚本的目的是什么?
  • 我真的很难理解你想要做什么。 PHP 不能包含 CSS。

标签: php html css import


【解决方案1】:

文件名必须不是 .CSS 索引。写下:

<link rel="stylesheet" href="style.css" type="text/css" />

【讨论】:

    【解决方案2】:

    这是我所拥有的有效格式:

    <head>
    <title>Site Title</title>
    
    <?php include 'header.php'; ?>
    </head>
    

    在我的 header.php 里面我有:

    <!doctype html>
    <html class="no-js" lang="en">
    <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="shortcut icon" type="image/png" href="assets/images/icon/favicon.ico">
        <link rel="stylesheet" href="assets/css/bootstrap.min.css">
    

    【讨论】:

      【解决方案3】:

      随便放

      echo "<link rel='stylesheet' type='text/css' href='CSS/main.css'>";
      

      在 php 代码中,然后包含您的样式。为我工作,我试过了。

      【讨论】:

        【解决方案4】:
        <?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>
        

        包含您的 CSS 项目

        【讨论】:

          【解决方案5】:

          最好的方法是:

          第 1 步: 将你的 main.css 重命名为 main.php

          第 2 步:在你的 main.php 中添加

          <style> ... </style>
          

          第 3 步:像往常一样包含它

          <?php include 'main.php'; ?>
          

          我就是这样做的,而且运行顺利..

          【讨论】:

            【解决方案6】:

            你必须用&lt;style&gt;标签包围CSS:

            <?php include 'header.php'; ?>
            <style>
            <?php include 'CSS/main.css'; ?>
            </style>
            ...
            

            PHP include 也可以在 .css 结尾处正常工作。通过这种方式,您甚至可以在 CSS 文件中使用 PHP。这对组织例如非常有帮助。颜色作为变量。

            【讨论】:

            • 这是最好的解决方案,PHP包含不一定要以.php结尾。此外,&lt;style&gt; 标签也不需要回显,因此&lt;style&gt; &lt;?php include 'style.css'; ?&gt; &lt;/style&gt; 可用于提高可读性。
            • @flori 这个解决方案对我不起作用。它根本没有选择风格。有什么指点吗?
            • @Sarah 在浏览器中查看源代码。 CSS 代码是否出现在 &lt;style&gt; 标签之间?也许include 不起作用?也许只是一个 PHP 错误消息而不是 CSS?
            • @Sarah 它绝对应该工作 - 所以问题几乎肯定是这样的:当你执行 include() 时,你需要一个基于文件系统的路径,而在文档中一切都是基于 web 根的。因此,您的 php 将找不到 CSS 文件。一个简单的解决方法是使用 __ DIR __ (大写的 DIR 两边都有双下划线,没有空格;php 的一个魔术常数),它将为您提供您所在文件的文件系统路径;那么你只需要从那里去相对。
            【解决方案7】:

            这是一篇较早的帖子,但由于该信息今天仍然相关,因此额外的选项可能对其他人有所帮助。

            • 根据Stefan's 答案为文件路径定义一个常量。这 定义可以放在 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>
            

            【讨论】:

              【解决方案8】:

              _trace 它的目录,我猜

              echo css('lib/datatables_rqs/jquery.dataTables.css');
              

              【讨论】:

                【解决方案9】:

                您还可以执行以下操作:

                1. 在includes文件夹中创建一个php文件,例如命名为bootstrap_css.php
                2. 将 css 代码文件粘贴到上面创建的文件中

                   <?php 
                    $minCss=' <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">';
                  
                   $business = '<link href="bootstrap/css/modern-business.css" rel="stylesheet">';
                  
                    echo $minCss;
                    echo $business;
                  ?>
                  
                3. 在html头中,包含css文件如下

                   <?php include_once 'includes/bootstrap_css.php'; ?>
                  

                【讨论】:

                  【解决方案10】:

                  我通过将所有 css 指令封装在 php echo 中,然后将其保存为 php 文件(当然,使用 php 标签开始和结束文件)解决了类似的问题,然后包含了 php 文件。 这是必要的,因为重定向后跟(标头(“somefilename.php”)),并且在重定向之前不允许使用 html 代码。

                  【讨论】:

                    【解决方案11】:

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

                    header("Content-type: text/css; charset: UTF-8");
                    

                    可能有助于某些用户的连接,但理论上(阅读:我尚未测试过)会增加服务器的处理器开销,据 Steve Souder 说,因为您的计算机可以下载多个文件一次,使用 include 可能会更慢。如果您将 CSS 拆分为十几个文件,也许会更快?

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

                    【讨论】:

                      【解决方案12】:

                      我不知道你为什么需要这个,但要做到这一点,你可以编辑你的 css 文件:-

                      <style type="text/css">
                      body{
                      ...;
                      ...;
                      }
                      </style>
                      

                      您刚刚在此处添加并保存为 main.php。您可以继续使用 main.css,但最好使用 .php,因为在您进行编辑后它不会保留为 css 文件


                      然后像这样编辑您的 HTML 文件。 注意:在标签内添加 include 语句

                      <html>
                      <head>
                       <title>Sample</title>
                       <?php inculde('css/main.css');>
                      </head>
                      <body>
                      ...
                      ...
                      </body>
                      </html>
                      

                      【讨论】:

                        【解决方案13】:

                        你可以这样做

                        &lt;?php include("Includes/styles.inc"); ?&gt;

                        然后在这个 include 文件中,有一个指向您的 css 文件的链接。

                        【讨论】:

                          【解决方案14】:

                          如果你想导入这样的 CSS 文件,只需给文件本身一个 .php 扩展名,然后无论如何都要导入它。它会工作得很好:)

                          【讨论】:

                            【解决方案15】:

                            你可以使用:

                            <?php
                            $css = file_get_contents('CSS/main.css');
                            echo $css;
                            ?>
                            

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

                            <style type="text/css">
                            ...
                            </style>
                            

                            【讨论】:

                            • 这只会打印出 HTML 页面上的 css 内容,这正是 include 所做的
                            • 我假设他的示例被简化了,但情况可能并非如此。我还假设他的意思是说他不想将文件重命名为 php (因此也可能不想将其重命名为 .inc ),因为他无法控制它或其他原因。正如他似乎要求的那样,此方法会将css包含到PHP文件中。不要因为问题不是 100% 清楚而回答问题。
                            • 这更适用于您构建字符串而不是渲染页面的情况,因为之后只需 print() 字符串是一件简单的事情,我认为这是一个更通用的解决方案。
                            • 谢谢,如果您需要在路径上进行查找和替换,这很有用,例如:&lt;?php echo str_replace ( 'url("..', 'url("http://domain.com/assets' , 'CSS/main.css') ); ?&gt;
                            【解决方案16】:

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

                            <link rel="stylesheet" href="CSS/main.css" type="text/css">
                            

                            【讨论】:

                            • 这(或@import)是在页面中包含 CSS 的最佳方式。如果您使用 PHP 将 CSS 文件的内容转储到 HTML 中,那么每次您的用户请求页面时,他们都必须下载您的 CSS 文件的全部内容作为 HTML 的一部分。但是,如果您使用这种标签,浏览器可以单独请求 CSS,并且,下次它看到对同一个 CSS 文件的引用时,它会说“哦,我已经有了”,而无需费心去请求它.这将使用户的事情变得更快,并且意味着您的网络服务器的工作量更少。
                            • FWIW:我相信这个标签应该在 部分。
                            • 如果 CSS 在 HTML 文件中怎么办?
                            猜你喜欢
                            • 2017-09-20
                            • 1970-01-01
                            • 2017-08-15
                            • 2011-07-17
                            • 2021-11-28
                            • 1970-01-01
                            • 1970-01-01
                            • 2018-10-09
                            • 1970-01-01
                            相关资源
                            最近更新 更多