CSS中的PHP变量不工作


PHP Variables in CSS not working

我的html文件有以下代码:

<html>
<head>
<link rel='stylesheet' href='css/style.php' media = "screen"/>
</head>
<body>
<h1 id="foo">My h1 foo element</h1>
</body>
<html>
对于我的php文件:
<?php
    header("Content-type: text/css; charset: UTF-8");
    $asd = '#0000ff';
?>
h1#foo  {
    color: <?php echo $asd;?>;
}

我已经遵循了一些教程,这是我能做的最简单的一个,但不知何故,输出不工作的方式应该是。我错过什么了吗?

注:如果我要在css中使用PHP变量,它能是动态的吗?我的意思是,在PHP正文中,我是否可以重写CSS中使用的PHP变量的值,这样输出就会改变?

非常感谢你的帮助!

我可以用^^

使用以下语法:

cssman.php

<?php
ob_clean();
header('Content-Type: text/css');
header('Cache-Control: no-cache, must-revalidate');
error_reporting( 0 );
// These are just to show you can use dynamic values and such:
$type  = isset($_GET['type'])   ? $_GET['type']  : '';
$theme = isset($_GET['theme'])  ? $_GET['theme'] : '';
/** Simply print or echo your css here **/
ob_end_flush(); 
?>

先尝试输出,手动导航到.php文件。如果根本没有内容,很可能是PHP代码出错了,为了调试,你可以添加错误报告(不要忘记还设置ini_set('display_errors',1),否则错误只会被记录)。

然后添加到你的视图:

视图

<style type="text/css">             
    @import "/Library/Stylesheets/cssman.php?type=cms"  screen;
    /* any aditional files here aswell */
</style>

你可以这样做

echo"
<style>
 h1#foo {
   color: ".$asd.";
}
</style>
";

首先,要包含一个php文件,这种语法是绝对错误的:

<link rel='stylesheet' href='css/style.php' media = "screen"/>

要包含一个Css文件,我们使用以下语法:

<link rel='stylesheet' href='css/style.css' media = "screen"/>

和包含一个PHP文件,我们使用:

<?php
include_once "a.php"; // this will include a.php
?>

与其使用PHP来管理CSS,不如考虑使用专门用于此目的的CSS预处理器之一。它还将客户端代码与服务器端技术分离。

http://lesscss.org/
https://learnboost.github.io/stylus/
http://sass-lang.com/

另一种值得考虑的方法是将CSS分解成几个文件。你可以有一个通用文件应用于所有设备上的所有页面,一个包含颜色,另一个管理布局,也许是一些设备特定的。

您发布的代码按预期工作。带有id=foo的标题变为蓝色。唯一的问题是它没有为css文件使用.css扩展名。为了解决这个问题,你可以在css文件夹中放入一个.htaccess,并指示Apache Web服务器使用Php解释器也用于css文件(查看此链接)。

然而,对于从php动态更改它,您的意思是更改值(例如在用户输入或其他事件之后)。但如果我理解得好,你的问题的答案是否定的。

Php只能预处理你的页面,它不能在浏览器从用户加载页面后动态修改你的页面。在成瘾中,使用变量$asd上面的代码只能在style.php和在代码中使用之前进行更改。

我建议你使用javascript代替,它更容易。使用一些javascript库,比如jQuery,来完成这种工作。