使用PHP设计内容交付系统

时间:2011-10-13 02:22:42

标签: php

目前,我有一个使用PHP在我的网站上主动生成页面的系统,或多或少是这样的:

index.php ------ include(query.php); -----> query.php从与index.php

对应的文件中获取内容

Query.php只是简单地从提到的index.php文件以及页眉,页脚和导航文件中组装页面。

index.php文件作为一种代理或标签,如果你这样做,当用户访问网站时,而不是像“query.php?page = index”这样的网址,他们有真实的网页。

问题当然是这有点令人费解。对于站点的每个页面,我需要2个文件:“包装器”文件(例如index.php)和它对应的内容文件。我想只使用一个文件。问题是单个文件应该只包含页面内容 - 不是结构,页眉,页脚等。

所以,我希望能够做的是能够让index.php包含ONLY和一个段落。当访问它时,PHP会以某种方式启动并应用模板和页眉和页脚。

PHP是否太高级了能够做到这一点的语言?我知道它经常使用Tomcat和java servlet完成,但我认为使用PHP会很酷。

编辑:重要的是,我不想使用GET变量。

1 个答案:

答案 0 :(得分:1)

告诉你要做什么有点难,但是你是否考虑过使用像Kohana或Synfony这样的框架?这将完全符合您的要求。

如果您正在寻找一个好的模板系统,我建议使用PHPTAL。

如果做不到这一点,听起来你不需要做任何特别的事情。在index.php页面上,为什么不包括header.php,内容和footer.php?如果不使用auto_append_fileauto_prepend_file,则无法向代码中未明确显示的网页添加内容。

听起来你想做的就是通过一个点来路由所有请求(就像框架一样)。我们称之为main.php

main.php上你会有:

include header.php
include $_SERVER['PATH_INFO'] . ".php" //Requested file from URL.  TODO handle this better
include footer.php

然后,您将所有请求(使用您的服务器配置)路由到“/main.php/pagename”。然后,pagename只需要各自的内容。

相关问题