php:包含数组中定义的文件时失败

时间:2013-01-13 17:31:43

标签: php mysql

我希望根据从数据库中获取的值来包含文件。在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扩展之前的尾部斜杠和点被省略了。谢谢你的帮助:)。

3 个答案:

答案 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当你累了的时候,你必须采取一个小小的断言,以便能够正确地表达。再次感谢你们:)