CodeIgniter视图无法解析PHP

时间:2012-01-11 21:33:07

标签: php codeigniter

我已经安装并正确运行CodeIgniter,或多或少。我的应用程序正在加载控制器并显示视图。

但是,如果像以前一样使用短标记<?=base_url()?>,则此版本不会将它们解析为PHP。

我是否应该在第一个PHP标记处包含完整标记<?php echo base_url(); ?>执行停止。

必须在某些时候对PHP进行解析,因为在使用短标记时,控制器仍然可以正确加载,但会生成带有未解析的短标记的HTML。可能是什么问题?

    <div id="container">
    <div id="content">
        <img src="<?=base_url() . 'assets/images/cool_critter_logo_trans.png'?>" 
            alt="Cool Critters Logo" id="logo_image" />
        <h1>Welcome to Cool Critters!</h1>

        <p>
            This website is undergoing some serious updates! Please be patient as we work behind the scenes
            to improve the functionality and look of the website!
        </p>

        <p>
            Cool Critters is your source for dog training and agility supplies, courses, and information.
        </p>

        <p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds</p>
    </div>
    </div>

这在另一台服务器上进行了上一次迭代,我在移动中打破了一些东西。

此处可用:http://107.21.96.179:81/

6 个答案:

答案 0 :(得分:4)

我的猜测是你的服务器不允许使用短标签。您可以更改配置文件中的设置,以允许CI动态重写短标签。

从第372行开始:https://github.com/EllisLab/CodeIgniter/blob/develop/application/config/config.php

/*
|--------------------------------------------------------------------------
| Rewrite PHP Short Tags
|--------------------------------------------------------------------------
|
| If your PHP installation does not have short tag support enabled CI
| can rewrite the tags on-the-fly, enabling you to utilize that syntax
| in your view files.  Options are TRUE or FALSE (boolean)
|
*/
$config['rewrite_short_tags'] = FALSE;

和文档: http://codeigniter.com/user_guide/general/alternative_php.html

答案 1 :(得分:2)

Just Roel说,如果你没有加载助手,那么 base_url()功能就不起作用了。

在控制器的构造函数中添加辅助加载器

 $this->load->helper('url');

答案 2 :(得分:1)

这绝对不是Codeigniter的问题。我在我的视图中使用短标记没有任何问题。

Codeigniter不像Django或Ruby那样“解析”视图。代码以标准php执行。

您确定没有在PHP配置中禁用短标签吗?我敢打赌这就是问题所在。如果没有,您可能没有使用正确的语法。

答案 3 :(得分:1)

有些服务器不支持所谓的短标签,因此建议您完全写出来。除此之外,您必须加载URL帮助程序才能在视图中使用base_url()

只需将$this->load->helper('url');添加到构造函数或加载模型等的位置

答案 4 :(得分:1)

Codeigniter可以动态重写短标签。在application / config / config.php

中查找“重写短标签”

答案 5 :(得分:0)

无论CodeIgniter中的设置如何,PHP都需要允许短标签。

在php.ini中,设置:

short_open_tag=On

重启apache。