CodeIgniter Представления не анализируют PHP - PullRequest
3 голосов
/ 12 января 2012

У меня установлен и работает CodeIgniter, более или менее.Мое приложение загружает контроллер и отображает представление.

Однако, если использовать короткие теги <?=base_url()?>, как я использовал, эта версия не анализирует их как PHP.

Должен ли я включить полныйтеги <?php echo base_url(); ?> выполнение немедленно останавливается на первом теге PHP.

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 ]

4 голосов
/ 12 января 2012

Я предполагаю, что ваш сервер не допускает короткие теги.Вы можете изменить настройку в файле конфигурации, чтобы позволить 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

2 голосов
/ 12 января 2012

Просто Роэл говорит, что если вы не загрузите помощника, функция base_url () не будет работать.

Добавьте вспомогательный загрузчик в конструктор контроллера

 $this->load->helper('url');
1 голос
/ 12 января 2012

Codeigniter может переписывать короткие ярлыки на лету. Найдите «Перезаписать короткие теги» в application / config / config.php

1 голос
/ 12 января 2012

Некоторые серверы не поддерживают так называемые короткие теги, поэтому рекомендуется полностью их записывать.Кроме того, вы должны загрузить URL-помощник, чтобы использовать base_url() в своем представлении.

Просто добавьте $this->load->helper('url'); в конструктор или куда бы вы ни загружали модели и т. Д.

1 голос
/ 12 января 2012

Это определенно не проблема с Codeigniter. Я использую шорт-тэги во всех своих видах без проблем.

Codeigniter не «разбирает» представления так же, как Django или Ruby. Код выполнен как стандартный php.

Вы уверены, что не отключили шорт-теги в своей конфигурации PHP? Могу поспорить, что это проблема. Если нет, то вы, вероятно, не используете правильный синтаксис.

0 голосов
/ 30 декабря 2012

Независимо от настроек в CodeIgniter, PHP должен разрешать короткие теги.

В php.ini установите:

short_open_tag=On

Перезапустите apache.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...