Класс обработки HTML

Renny

Новичок
Класс обработки HTML

я пишу класс вывода хтмл
мне надо буфер сделать, что бы для всех методов внутри класса был доступен.
В буфер я добавляю хтмл, а потом вывожу когда надо.
PHP:
class Html
{
  function AddHtml($html)
  {
    if(!isset($html_string))
    {
      $html_string='';
    }
    else
    {
      $html_string.=$html;
    }
    return true;
  }
  
  function GetHtml($html)
  {
    return $html_string;
  }
}
Как этот буфер сделать?
Смогут ли методы оперировать с $html_string?
 

Profic

just Profic (PHP5 BetaTeam)
Ох рано с ООП связался, как мне кажется. [m]language.oop[/m] - там куча примеров.
 

Renny

Новичок
Переписал:
PHP:
class Html
{
  var $actual_html;

  function Html()
  {
    $this->actual_html='';
  }

  function AddHtml($html)
  {
    $this->actual_html.=$html;
    return true;
  }

  function GetHtml()
  {
    return $this->actual_html;
  }
}
Так нормально?
 

Profic

just Profic (PHP5 BetaTeam)
Баксы где? :) В смысле знаки доллара перед переменной.
 

440hz

php.ru
Renny
можно расширить класс двумя методами. AddFromFile() и Parse(). Где первый загружает HTML из файла (удобно грузить куски), а второй заменяет строки вида $VAR на значения переменной из массива $GLOBALS['VAR'] (простые шаблоны). Тогда можно писать так:
PHP:
$HEADER = new HTML;
$HEADER->AddFromFile('header.html');

$NOW = date('d.m.Y');
$BODY = new HTML;
$BODY->AddHtml('<p>Hello world.</p>');
$BODY->AddHtml('<p>Сегодня: $NOW</p>');
$BODY->Parse();

$FOOTER = new HTML;
$FOOTER->AddFromFile('footer.html');

print $HEADER->GetHtml();
print $BODY->GetHtml();
print $FOOTER->GetHtml();
последние три строчки можно так же завернуть в буфер и шаблон.
PHP:
$THEADER = $HEADER->GetHtml();
$TBODY = $BODY->GetHtml();
$TFOOTER = $FOOTER->GetHtml();

$TEMPLATE = new HTML;
$TEMPLATE->AddFromFile('template.html');
$TEMPLATE->Parse();
print $TEMPLATE->GetHtml();
где template.html вида:

PHP:
$THEADER
<body>
$TBODY
</body>
$TFOOTER
 

Nimous

Guest
Угу. А можно взять FastTemplate, например, или подобное, где всё это уже давным давно написано, и не изобретать самокаты.
Хотя самокаты изобретать приятнее.
:)
 
Сверху