// // Функция генерации html-тега с поддержкой видимости // function Tag($array) { $result = ''; if (isset($array['tag'])) { $tag = $array['tag']; unset($array['tag']); $inside = ''; if (isset($array['inside'])) { $inside = $array['inside']; unset($array['inside']); } foreach($array as $k=>$v) { if ($k=='visible' && $v==false) return ''; if ($v!='') $result .= sprintf(' %s="%s"',$k,$v); } $result = '<' . $tag . $result . '>'; if (in_array($tag, array('HTML', 'HEAD', 'BODY', 'TABLE', 'TR', 'HR', 'FORM', 'SELECT', 'SCRIPT'))) $result.="n"; $result .= is_array($inside)? Tag($inside) : $inside; if (!in_array($tag, array('INPUT', 'IMG', 'HR', 'META', 'LINK'))) $result .= '</' . $tag . '>'; if (!in_array($tag, array('HTML', 'HEAD', 'BODY', 'TITLE', 'META', 'LINK', 'TR', 'TD', 'HR', 'FORM', 'BR', 'OPTION'))) $result.="n"; } return $result; } echo Tag(array( 'tag'=>'DIV', 'style'=>'border: 1px solid #000;', 'inside' => Tag(array( 'tag' => 'I', 'inside' => 'First message', )). Tag(array( 'tag' => 'U', 'inside' => 'Second message', 'visible' => false )) )); * Такой же прием генерации HTML можно сделать с классами, * но, несмотря на большую гибкость, они будут жрать больше памяти
PHP Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor