tangsiner 发表于 2008-4-16 12:04:55

关于入门第一个例子的疑问

<?php
class Blog extends Controller{
    function index(){
      $data = array('title' => '欢迎进入http://codeigniter.org.cn',
                      'heading' => '欢迎',
                      'message' => 'http://codeigniter.org.cn');
      $this->load->view('blog', $data);//这里blog是视图名字不需要写扩展名,$this->load->view('folder/blog', $data)这样是在 folder 文件夹里面的blog.php文件[*]}
}
?>

这是坛主发的第一个实例,问一个问题
如果模板页是静态页,即blog.html,怎么实现在参数替换?
比如 blog.html里面有{$titile},{$head},{$content}这样的参数,那在类中怎么写$data=array();

Hex 发表于 2008-4-16 12:10:15

静态页请参考 http://codeigniter.org.cn/user_guide/libraries/parser.html 模板解析器类。

PS: 一般都用 .php 后缀,这没什么不好,不影响性能。

gwpxjb 发表于 2008-4-16 12:14:59

我是这样认为的,你view里,虽然你要是静态页面,但还是必须写成blog.php,但内容你可以全写html代码,通过模板解析将变量解析到view页面。

$data=array('title'=>'abc','head'=>'bcd','body'=>'body');
$this->parser->parse('blog',$data);

你要在view里使用{title}、{body}这样的,必须加载模板解析类
在autoload.php中的librarys里加入parser即可

tangsiner 发表于 2008-4-16 12:18:19

在Hex的帮助下,我实现了我想要的功能,谢谢各位的指导

其实就是在controller里改几个地方
$this->load->library('parser');
$data = array('title'=>"这是第一个例子",'content'=>"这是内容,模板的内容!");
$this->parser->parse('blog/index.html', $data);

gwpxjb 发表于 2008-4-16 14:31:26

:o 出手晚了一点点

moonster 发表于 2008-4-17 08:42:41

如果用html有点地方用了php语句,不会被解释的吧,不知道CI中怎么处理的?

gwpxjb 发表于 2008-4-17 09:04:44

在这点,CI应该和其他框架一样的,有php语句,不会被执行的
例如在a.html中
<html>
        <body>
                <?php
                echo "ok";
                ?>
                laksjdf
        </body>
</html>

不会输出ok的

caincheung 发表于 2008-4-17 19:10:14

同样问题。

xiaoxiaoyu 发表于 2013-4-19 16:50:32

mark!
页: [1]
查看完整版本: 关于入门第一个例子的疑问