我怀疑在php页面制作动态内容的最佳方式是什么。 我必须做这样的事情:
------------------------------
| Header |
------------------------------
| menu | Dynamic |
| | content |
------------------------------
我将此代码放在html内容之间的索引页面中。
<?php
if(isset($_GET["page_content"]))
include_once 'app/view/'.$_GET["page_content"].'.php';
?>
这包括我的索引页面中的html的一些部分,这使它“动态”。 另一方面,我认为在页面的separe页眉和页脚中,并包含在其他页面中。
我认为这些解决方案会更好,但不确定什么是最好的方法。
(我想在php中解决这个问题,而不需要单页应用程序)
答案 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一起使用的模板系统。例如,Smarty
和Zend_Framework
是使用模板的一些方法。