0

我想根据从数据库中获得的值包含一个文件。在 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)";它什么都不做(一个 yes $elements[module] 确实只包含单词“tax”)。我什至尝试将 $elements[module] 的值分配给另一个变量,但没有。

最奇怪的是,如果我尝试使用我的函数(includeModule),即使我手动将 $page 变量设置为“tax”,它仍然不包含任何内容并说该文件不存在(即使它做) ?

对此有什么帮助吗?

编辑:我已经尝试删除 / 但如果我这样做,它不再包含任何内容

编辑:我稍微改变了功能,所以我可以得到一些反馈

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 扩展名之前的点被忽略了。感谢您的帮助:)

4

3 回答 3

1

如果我使用 include("modules/tax.php)"; 它工作得很好。

在您的代码中,您正在使用

include("/modules/".$page."php");
         ^-- Note the leading / 

尝试删除/

于 2013-01-13T17:37:04.753 回答
0

好的,我解决了,谢谢大家:)每个答案都很有帮助:)(答案是您的答案+我需要更多注意的组合。我忘记了 . 就在 php 扩展之前 ..lolz .. 猜猜你是什么时候累了,您必须稍停一下才能集中注意力)。再次感谢伙计们:)

于 2013-01-13T18:12:29.223 回答
0

您正在查看是否"modules/".$page."php"存在但试图包括"/modules/".$page."php"哪些可能不是相同的东西(注意/后者的领先)。

if(file_exists("modules/".$page."php")) include("modules/".$page."php");
于 2013-01-13T17:36:38.887 回答