目前,我有一个使用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变量。
答案 0 :(得分:1)
告诉你要做什么有点难,但是你是否考虑过使用像Kohana或Synfony这样的框架?这将完全符合您的要求。
如果您正在寻找一个好的模板系统,我建议使用PHPTAL。
如果做不到这一点,听起来你不需要做任何特别的事情。在index.php
页面上,为什么不包括header.php
,内容和footer.php
?如果不使用auto_append_file
和auto_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只需要各自的内容。