php - CodeIgniter - 将变量传递给 CSS

标签 php html css codeigniter

我正在 Code Igniter 上重写网站,我需要加载外部 TTF。 MySQL 数据库指向该 TTF 的路径。我能以某种方式将这些变量传递给 CSS 并使 foreach 循环“加载”这些字体吗?

我试过了

$this->load->vars($data);

最佳答案

首先,处理提供动态 CSS。我的站点有一个名为“资源”的 Controller ,它允许我提供 CSS、JS 等(将来可能是图像)。它根据 url 中传递给它的段加载 View 。

因此,当请求 http://mysite.com/resource/css/main.css 时:

  • 我的 Resource Controller (.../controllers/resource) 处理数据处理的任何细节(与 MVC Controller 一样)。然后加载:
  • 通用 View :".../views/resources/css.php",将所需的 css 文件的名称传递给它。此 View 打印出 header ,指定 Content-Type(重要!)和任何其他通用内容。然后它继续加载:
  • 指定的实际 CSS 文件,此处为 ".../views/resources/css/main.css.php"

这有点矫枉过正,但提供了很大的灵 active ,就像您听起来需要的那样。

Controller :

...
$segments = $this->uri->segment_array();
array_shift($segments);   // remove the first two
array_shift($segments);
$content['stylesheet'] = $segments[0] . ".php";  //e.g. main.css.php
$content['data'] = array();                      //Font data, etc
$this->load->view('resources/css.php', $content);
..

通用资源/css.php 这会加载实际的 .css.php 样式表

<?php header("Content-Type: text/css"); // This is key! ?>  
/* MySite CSS File (c) 2011 bla bla */
<?php
     $this->load->view("resources/css/$stylesheet", $data);
     echo "\n";
?>

具体资源/css/main.css.php

<?php echo "/* I can use PHP in my CSS! */\n"; ?>
body { background-color: <?=$data['bg_color']?>; }
p { font-family: <?=$data['p_font_fam'];?>; }

关于php - CodeIgniter - 将变量传递给 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032972/

相关文章:

javascript - onDrop (javascript) 更改 css

html - 如何让浏览器识别 <url>#<anchor> 形式的已访问链接

javascript - 平滑滚动不适用于哈希 URL

php - 使用 PHP Mysql 如何从 sql 查询中的多个 OR 条件中获取满足哪个条件?

html - 图像向左浮动,文本居中对齐。图片后,链接不对齐

javascript - 使整个选项卡可点击

javascript - 在 GWT 应用程序中使用 HTML 页面

php - 使用 PHP 时出现 FancyBox 错误。有任何想法吗?

php - 从 .PHP 文件运行 BASH 脚本

php - 在函数内调用 ADODB?