替代身体标签中的CSS?

时间:2012-09-25 19:41:05

标签: php css

在我的网站的登录系统中,我希望在验证完成后加载用户选择的CSS。唯一的问题是我的PHP位于body元素中,我在那里ECHOed用户的CSS链接。我知道这是“坏事”,但我还能做些什么呢?

if (isset($_SESSION['loggedin'])){
ECHO $_SESSION['style'];
}
else
{
ECHO 'green';
}
ECHO ".css' />";

PHP脚本在用户登录后回显正文中的一些文本,这就是为什么我不能将PHP脚本放在标题中。

3 个答案:

答案 0 :(得分:1)

我假设您根本不熟悉PHP的基础知识,所以我会尽可能地将其分解。如果你的文档能够执行PHP(听起来好像因为你身上发生了事情),你需要做的就是用<?php?>包装PHP代码将解析为 PHP。

你不应该把样式表放在你的身体里。实际上,这是没有人会推荐的。但是,你可以做的是在文档的头部执行PHP。

<!DOCTYPE html>  
<html lang="en">  
  <head>  
    <meta charset="utf-8">  
    <title>title</title>  
    <link rel="stylesheet" href="style.css">  
<?php
echo "<link rel='stylesheet' href='{$_SESSION['user_css']}'>";
?>
    <script src="script.js"></script>  
  </head>  
  <body>  
<?php
echo 'body text';
?>
  </body>  
</html>  

你决定将PHP代码注入到你的文档中并不重要,它会按你的意愿呈现。我建议使用MVC解决方案,但如果这只是一个小型的一次性文件,请随时随地将PHP注入到您需要的地方。

http://php.net/manual/en/language.basic-syntax.phptags.php

答案 1 :(得分:0)

您可以在使用jQuery加载文档后加载用户css。

<script>

$(document).ready(function() {

  $(head).append('<style>
  <?php echo($user_css); ?>
  </style>');

});

</script>

虽然只是添加一个部分来输出头部中的CSS将来会更容易维护,并且不需要加载页面。在慢速(ish)连接上有足够大的变化,用户会在CSS加载其样式时看到闪烁。

答案 2 :(得分:-1)

您可以使用一些jQuery在<head>

中附加样式
$(head).append('<style><?php echo user_css ?></style>');