2013-05-09 39 views
-4

我对php页面中动态内容的最佳做法有什么疑问。 我必须做财产以后这样的:什么是拥有动态内容的页面的最佳方式?

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

我把这个代码在我的索引页的HTML内容之间。

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

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

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

(我想在PHP中解决这个问题,而不使单页的应用程序)

+2

什么是layo用PHP做什么? – 2013-05-09 07:11:24

+0

但是你的问题到底是什么? – Voitcus 2013-05-09 07:13:03

+0

_“另一方面,我想在页面的分页页眉和页脚中,并将其包含在其他页面中。”_ ....与此同时进行。 – itachi 2013-05-09 07:16:32

回答

2

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

Model View Controller是完美的。

对于你的看法,你可以使用纯HTML + PHP或模板系统,如智者phpsavant等我个人使用Smarty的,因为它很容易和非常强大的。

如果您不想使用MVC,您可以使用AJAX创建自己的系统。 该系统需要您在点击菜单项后创建AJAX功能。但

链接访问如果你想与客户端

的simpliest解决方案是使用包括这样做肯定你MUSN” t使用$ _GET与包含危险更好的方法是将文件放入某种排列y和$ _GET中有例如这个数组的键。

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

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

你也可以在这里补充一些的preg_match喜欢MOD应该只包含小写字母/[AZ] +/

其他更好的解决方案

$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

0

你应该考虑的是与PHP的使用模板系统。例如SmartyZend_Framework是使用模板的一些方法。

相关问题