2011-04-01 3 views
1

Я работаю с довольно простым шаблоном php прямо сейчас, хранящимся в одном файле index.php и извлекаю файлы через GET и получаю доступ к файлам вроде: http://mydomain.com/index.php?page=news, если файл называется news.php. См. Фрагмент кода ниже.php template engine для существующей веб-страницы

<? 
     $fileend = ".php"; 
     $file="{$_GET["page"]}$fileend"; 
     $news="news.php"; 
     if(file_exists($file)) 
      include($file); 
     else 
      include($news); 
    ?> 

Теперь я хочу использовать templage двигатель, где я могу иметь различные тег для каждой страницы, до сих пор я не хочу, чтобы изменить файловую систему. Сейчас мои файлы PHP выглядит следующим образом:

<h1>Page Title</h1> 
<p>Page Content</p> 

Я не использовать заголовок как файлы включены в мой index.php.

Я посмотрел на TinyButStrong и другие двигатели. Но я не знаю, как я должен действовать. Это должно быть довольно легко. Пожалуйста, дайте мне знать, как я могу это сделать, когда я не хочу сильно меняться в своей файловой структуре и сохраняю ее просто.

+0

Обратите внимание, что ваше текущее приложение уязвимо для включения файла. http://en.wikipedia.org/wiki/Remote_file_inclusion – Leon

ответ

1

Попробуйте smarty шаблон двигателя. Он прост в использовании, и вы можете использовать специальную папку шаблонов. Я не знаю, придется ли вам много менять, потому что я не знаю вашу файловую структуру ;-)

+0

Спасибо за ваш ответ. Я знаю умнее, но я не знаю, лучшее ли это решение. Моя файловая структура довольно проста. У меня есть файлы в основной папке и в подкаталогах. Я хочу получить доступ к своим файлам, просто набрав url index.php? Page = 2011/page1, если файл находится в подкаталоге 2011. Я не хочу создавать .tpl-файл для каждой страницы, но я все еще хочу иметь разные заголовки в заголовке. – theproximityeffect

+0

Вы можете использовать html-файлы также в smarty и использовать $ smarty-> display ($ _ GET ['yourTemplateFile']); Но, конечно, могут существовать и более совершенные двигатели. – strauberry

0

Вы могли бы дать Zend_Layout и Zend_View попробовать. Для этого вам не нужно использовать часть MVC для Zend Framework. Самый большой плюс при использовании этих 2 классов состоит в том, что шаблоны - это просто файлы PHP. Однако вам не нужно использовать Zend_Layout, но при работе с макетами это упрощает работу.

+0

Итак, нужен ли мне шаблон для каждого файла singe или достаточно одного основного шаблона (index.php), где включены все мои другие файлы? – theproximityeffect

+0

У вас может быть указатель index.php, который определяет, какой шаблон (отдельные файлы) включить. Не делайте все вместе в 1 файл, это делает обслуживание живым адом. – Htbaa

0

Другой шаблон двигателя, который вы можете использовать, является отдельным (см. http://separate.esud.info/). Можно включать файлы с

<!-- INCLUDE filename -->