我想知道存储HTML模板在我能够找回它们并插入变量数据库的最佳方式。

很显然,我可以将它们保存为PHP,然后“EVAL”记录....但我听说这是邪恶的。

是有更好的方法? :)

编辑:

对不起,我不清楚......我试着说HTML模板......我真正的意思是小嵌入,能HTML元素(认为YouTube的)......而不是整个网站简化它。

有帮助吗?

解决方案

我也要对存储在数据库内的HTML建议。它更方便将它们存储为文件系统中的模板,并将其纳入或在需要时解析。我还建议使用类似Smarty的。一个非常方便的工具,这是。

不过,如果你宁愿做手工,这里是我会做什么。

首先,我的模板存储在文件系统上的文件。如果你宁愿使用一个数据库,即可以做。只知道这个数据库将,通常,使用这样的东西时,会导致更多的开销。

例如,在YouTube视频的情况下:

<object width="{$width}" height="{$height}">
    <param name="movie" value="http://www.youtube.com/{$path}"></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <embed src="http://www.youtube.com/{$path}"
           type="application/x-shockwave-flash"
           allowscriptaccess="always"
           allowfullscreen="true"
           width="{$width}" height="{$width}">
    </embed>
</object>

然后我只想str_replace的PHP变量在那里,就像PHP本身并用绳子。

<?php
$template_path = 'templates/youtube_vid.tpl';
$template_data = file_get_contents($template_path);

$old = array('{$width}', '{$height}', '{$path}');
$new = array(425, 344, 'v/zuZB2O6orV0&hl=en_US&fs=1&');

echo str_replace($old, $new, $template_data);
?>

和这将是它。

您当然可以使用<?php $width; ?>样占位符,只是include模板,而是让你在为注入攻击的风险。这是更安全的路线。

其他提示

标记,你需要存储模板数据库?这会在每次请求这些模板时添加了沉重的负担,你的数据库服务器,除非你缓存。

比较这对其中具有内置的高速缓存,以简化文件中读取文件系统。

另外,你会不会有潜在的安全漏洞可能来自使用eval()。

没有必要重新发明轮子,你可以使用模板引擎和存储他们自己的模板数据库。我个人比较喜欢的模板存储在文件系统,因为它使事情易于维护,但其项目:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top