用 php 更改 css 值


Change css value with php

如何更改从管理员在我的主页上显示一些文本的div的css。我希望当我在插件管理页面中输入颜色代码时,代码会在 css 文件中更新。这是很常见的事情,但无法掌握它。

所以这是我的div 的 css。

#div{
background: #0000;
}

这是我的管理部分的PHP代码。

<?php 
 Background Color: <input type="text" size="20" name="background"
 value="<?php get_option('backgroundchanges');?>"/>

所以基本上我希望我在输入中输入的值反映在 css 文件中。

感谢您的任何帮助。

问候,:)

-罗恩。

您实际上不应该使用 .css 文件,而应该使用充当.css文件的.php文件。然后,您可以将新颜色设置为.php css文件中的变量。

将样式.css文件重命名为 style.php,然后将以下内容添加到文件顶部:

<?php header("Content-type: text/css"); ?>

这一行告诉浏览器该文件是CSS而不是HTML。在 HTML 文件中,将样式表引用从样式.css更改为样式.php。例如:

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

引自:http://www.barelyfitz.com/projects/csscolor/

通过PHP发布CSS文件会增加服务器的开销,因为您将需要创建动态HTML和CSS。 鉴于CSS的"级联"性质,HTML页面中提供的任何内联样式都将覆盖CSS,因此您很可能可以简单地将一些内联样式添加到PHP已经提供的页面中。 另一种选择是使用 Javascript 更新 CSS,这是一种方法,但我不相信这适用于所有浏览器(我在 iOS 上的 Webkit 中使用它):-

var cssStyle = getCSSRule('#styleName');
cssStyle.style.background = redfinedColour;

。从这里使用 getCSSRule:-

http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript

我的做法是有一个内容加载器控制器或脚本,它将加载图像/css/js并将它们传递给浏览器,您还可以控制缓存并动态创建javascript,就像tinyMCE中的图像列表一样:

这是一个精简的示例,但你明白了。

<?php 
$filename = value passed from url

if(file_exists(SITE_ROOT.'/templates/'.$theme.'/css/'.basename($filename))==true){
    $fullpath=SITE_ROOT.'/templates/'.$theme.'/css/'.basename($filename);
    header("Content-type: text/css");
    $search=array('{SITE_URL}','{BACKGROUND}');
    $replace=array('http://example.com',get_option('backgroundchanges'));
    echo str_replace($search,$replace,file_get_contents($fullpath));
    die;
}else{
    die('CSS file does not exist!');
}
?>

然后用参数替换占位符的 css 文件:

#div{
background: #{BACKGROUND} url('{SITE_URL}/stripe.png') repeat;
}