我有一个PHP脚本(index.php),它根据URL的查询部分更改显示的页面(使用GET)。页面中的所有链接都使用?page=pageName
访问不同的“页面”,index.php脚本相应地从文本文件中加载HTML(将其回显到屏幕上)。
因此,如果用户转到index.php?page=about
,我的PHP脚本会加载一个名为about.php
的文件,并在浏览器的视图容器中回显它。
但是,我遇到了一个大问题:我正在加载的内容中包含PHP脚本,但在使用index.php
脚本回显时,这些脚本不会被执行。这使得我无法加载包含从MySQL数据库中提取的目录列表的页面。
基本上,我想知道是否有任何方法可以将PHP文件回显到页面上,但也可以在文件中执行PHP代码。
为清楚起见,我附上了一个带注释的截图,描述了我的意思:
编辑:以下是链接:
答案 0 :(得分:2)
在index.php中使用if语句包含('about.php'),并将echo语句放在about.php中。如果这不起作用,请发布代码示例。
if( $_REQUEST['someQuery'] == 'about' )
{
include('about.php');
}
答案 1 :(得分:1)
使用include()
将包含另一个PHP脚本的内容并执行它。如果其他PHP脚本包含产生输出的函数,那么您将需要单独调用它们。
答案 2 :(得分:0)
请不要用连词开始你的句子。
根据网址更改显示的页面
大多数网页都不会发生这种情况吗?
使用?page = pageName
访问不同的“页面”
哦 - 你的意思是URL的查询部分 - 前端控制器模式 - 好吧!
我可以将PHP文件回显到页面上,但也可以在文件中执行PHP代码。
您是否想要查看PHP源代码和代码的输出?或者只是代码的输出?
在您的前端控制器中:
<?php
if (realpath($_REQUEST['page'])!=$_REQUEST['page']) {
header("HTTP/1.1 500 Internal Server Error");
die ("Naughty!");
}
$script=SOME_PATH . $_REQUEST['page'] . ".php";
if (!file_exists($script) || !is_readable($script)) {
header("HTTP/1.0 404 Not Found");
die ("File not found");
}
print "src = <br />";
highlight_file($script);
print "<hr />Output:<br />";
include($script);