Я бы также советовал хранить 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
шаблон, но это оставляет вас под угрозой для инъекционных атак. Это более безопасный маршрут.
Я решил пойти с шириной Php $; ?> route ... вы и scrumpy jack правы ... файловая система - это способ пойти с шаблонами. Я не вижу, как принимать данные базы данных и напрямую вставлять их с помощью эха, в любом случае менее безопасно, чем str_replacing данные в ... Я проверяю данные до того, как их сохраню ... все его числовые или числовые, достаточно простые для проверки вставка должна сделать его достаточно безопасным? – Mark
Несомненно, если вы все проверяете, прежде чем включать его, он должен быть достаточно безопасным. Если имя шаблона динамическое, не забудьте проверить его на;] – Atli