我希望根据从数据库中获取的值来包含文件。在page.php里面的类页面我有这个函数来获取我想要的数据:
function getPage(){
$page=array(
'title'=>$this->title,
'content'=>$this->content,
'module'=>$this->module
);
return $page;
}
在pageview.php中,我称之为:$elements=$page->getPage();
该功能工作得很好,我得到了我的内容,我可以像这样操作(我知道heredox不是要走的路,但请忽略它,这不是问题):
echo <<<EOT
<div class='row-fluid'>
<H1> title:$elements[title]</H1></br>
$elements[content]
$elements[module]
</div>
EOT;
现在问题来了。我有一个名为includeModule的函数,它是这样的:
function includeModule($page){
$page=strtolower($page);
if(file_exists("modules/".$page."php")) include("/modules/".$page."php");
else Echo "No such Module Exists :".$page." </br>";
}
现在假设我要包含一个名为“tax.php”的页面。如果我使用include("/modules/tax.php)";
它就可以了。如果我尝试使用include("/modules/".$elements[module].".php)";
它什么都不做(是的$元素[模块]确实只包含“税”这个词)。
我甚至尝试将$ elements [module]的值分配给另一个变量,但没有。
最奇怪的是,如果我尝试使用我的函数(includeModule),即使我手动将$ page变量设置为“tax”,它仍然不包含任何内容,并表示该文件不存在(即使它确实如此)?
对此有何帮助?
编辑:我已经尝试删除/但如果我这样做,则不再包含
编辑:我已将功能更改为litle,以便我可以获得一些反馈
if(file_exists("modules/".$page.".php")){
echo "<p>file exists</p>";
include("modules/".$page."**.**php");
}else{
echo getcwd();
Echo "<p>No such Module Exists :".$page."</p>";
}
好的解决了。感谢所有的答案。由于我的错误,在php扩展之前的尾部斜杠和点被省略了。谢谢你的帮助:)。
答案 0 :(得分:1)
如果我使用include(“modules / tax.php)”;它工作得很好。
在您的代码中,您正在使用
include("/modules/".$page."php");
^-- Note the leading /
尝试删除/
答案 1 :(得分:0)
您看到"modules/".$page."php"
是否存在,但尝试包含可能不相同的"/modules/".$page."php"
(注意后者的前导/
。)
if(file_exists("modules/".$page."php")) include("modules/".$page."php");
答案 2 :(得分:0)
好吧我已经解决了它感谢大家:)每个答案都很有帮助:)(答案是你的答案的组合+我需要的更多的注意力。我忘记了。在php扩展之前.. lolz .. guess当你累了的时候,你必须采取一个小小的断言,以便能够正确地表达。再次感谢你们:)