Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Использование шаблонов...
 
 автор: Dimka31   (10.09.2008 в 14:33)   письмо автору
 
 

Осознав выгоду использования шаблонов, сразу столкнулся с проблемой с выполнением php-кода в файлах-шаблонах.
Сам файл шаблон:

<table>
  <tr>
     <td>Использование темплейтов: </td>
     <td>{cookie_name}</td>
  </tr>
</table>


Контроллер:


<?php
  
class shop
  
{
    public 
$cookie_name
    
    function 
__construct($str)
    {
      
$this->cookie_name $str;
    }

    function 
get_page($file_name)
    {
      
$buf file_get_contents($file_name.".tpl.php");
      
$buf str_replace("{"'<?php echo $obj->'$buf);
      
$buf str_replace("}""; ?>"$buf);
      return 
$buf;
    }
  }
?>


Индексный файл


<?php
  
require_once("class.shop.php");
  
$obj = new shop("Бла Бла Бла");
  echo 
$obj->get_page("index");
?>


В классе имеется функция get_page(), которая:
1)принимает имя файла
2) затем считывает его содержимое
3) затем преобразует символы { } в их php эквиваленты
4) затем возвращает преобразованное содержимое файла.

В файле индекс эта функция вызывается, ее результат выводится.

Только вот код PHP не хочет исполняться, проблемы какие-то с тегами PHP. Помогите разобраться. Заранее благодарен

  Ответить  
 
 автор: BinLaden   (10.09.2008 в 15:37)   письмо автору
 
   для: Dimka31   (10.09.2008 в 14:33)
 

> Только вот код PHP не хочет исполняться

Вы не давали никому команду выполнить этот PHP-код. Возможно, Вам поможет eval(). А возможно и нет...

  Ответить  
 
 автор: Dimka31   (10.09.2008 в 16:18)   письмо автору
 
   для: BinLaden   (10.09.2008 в 15:37)
 

спасибо! помогло!

  Ответить  
 
 автор: mechanic   (11.09.2008 в 10:08)   письмо автору
 
   для: BinLaden   (10.09.2008 в 15:37)
 

айяйяй, eval зло!
лучше куда нить сохранить обработанный шаблон в кеш (заодно в следующий раз его обрабатывать не придется), а потом
ob_start(); include $template; return ob_get_clean();

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования