拥有包含动态内容的页面的最佳方法是什么?

时间:2013-05-09 07:10:17

标签: php

我怀疑在php页面制作动态内容的最佳方式是什么。 我必须做这样的事情:

------------------------------
|           Header           |
------------------------------
|      menu    |  Dynamic    |
|              |  content    |
------------------------------

我将此代码放在html内容之间的索引页面中。

<?php
    if(isset($_GET["page_content"]))
        include_once 'app/view/'.$_GET["page_content"].'.php';
?>

这包括我的索引页面中的html的一些部分,这使它“动态”。 另一方面,我认为在页面的separe页眉和页脚中,并包含在其他页面中。

我认为这些解决方案会更好,但不确定什么是最好的方法。

(我想在php中解决这个问题,而不需要单页应用程序)

2 个答案:

答案 0 :(得分:2)

制作模板和动态内容有好几种方法。首先,您应该将代码划分为模板,数据处理和这两者之间的连接。

Model View Controller非常适合这一点。

对于您的观点,您可以使用纯html + php或模板系统,如 smarty phpsavant 等。我个人使用smarty因为它简单而且非常强大。

如果您不想使用MVC,可以使用AJAX创建自己的系统。 在单击菜单项后,此系统需要您创建ajax函数。

如果您想与客户端

进行访问,请访问该链接

最简单的解决方案是使用include但是肯定你没有使用 $ _ GET 与include是危险的更好的方法是将文件放在某种类型的数组中并在$ _GET中有关键例如数组。

$mods = array("music", "download", "main");

if(in_array($_GET['mod'], $mods))
{
   include('mods/'.$_GET['mod'].".php");
} 

你也可以在这里添加一些preg_match,就像mod应该只包含小字母 / [a-z] + /

另一个更好的解决方案

$mod = intval($_GET['mod'], 0)
$mods = array(1 => "music", 2 => "download", 3=> "main");
if(!$mod) throw new Exception("Bad module");
if(array_key_exists($mod, $mods)) 
   include("mods/".$mods[$mod].".php");
else 
   if(!$mod) throw new Exception("The module does not exists");

然而,最好的解决方案是使用某种框架,例如Zend,它已经编写了类来处理这个名为Zend View

的类

答案 1 :(得分:0)

你应该研究一下与php一起使用的模板系统。例如,SmartyZend_Framework是使用模板的一些方法。