PHP html和PHP呈现函数
我有一个名为Tag的类,它必须用HTML脚本动态呈现PHPPHP html和PHP呈现函数,php,html,eval,render,Php,Html,Eval,Render,我有一个名为Tag的类,它必须用HTML脚本动态呈现PHP public function render () { $render = ''; $render .= '<' . $this->tagname; //attributes foreach ($this->attr as $attr) { if(isset($attr['name']) && isset($attr['value'])){ $render .=
public function render () {
$render = '';
$render .= '<' . $this->tagname;
//attributes
foreach ($this->attr as $attr) {
if(isset($attr['name']) && isset($attr['value'])){
$render .= ' ' . $attr['name'] . '="' . $attr['value'] . '"';
}
}
if($this->tagtype == 1) $render .= ' />';
if($this->tagtype == 2) $render .= ' >';
if($this->tagtype == 0) {
$render .= '>';
foreach ($this->content as $content) {
if(isset($content['type']) && isset($content['data'])){
//content as HTML
switch ($content['type']) {
case 'html':
$render .= $content['data'];
break;
case 'tag':
$tag = $content['data'];
$render .= $tag->render();
break;
case 'script':
$render .= file_get_contents($content['data']);
break;
default: break;
}
}
}
$render .= '</' . $this->tagname . '>';
}
return $render;
}
然后,我只需要运行$site->render()
就可以显示它
我曾考虑过使用eval
,但由于它通常是不安全的,所以我认为有类似的解决方案
如果您想做这样的事情,您可以告诉我您将使用哪个方向吗?您是否考虑过使用DOMDocument DOM操纵类来做这类事情?为什么要重新发明轮子?@MikeBrant谢谢你的回复,你说得对,我可以使用DOMDocument,但它只适用于HTML元素,我还需要导入PHP脚本。
$head->addTag(new Tag ('script',array('name' => 'src', 'data' => 'some_source')));
$body->addFile('nav.php');