PHP'包含'功能错误

时间:2014-10-05 19:13:42

标签: php

包含小部件时收到以下错误;

Warning: include(/includes/template/widgets/leftNavigator.php): failed to open stream: No such file or directory in C:\inetpub\wwwroot\includes\lib\widgets\class.widgets.php on line 8

运行时使用:

public static function getWidget($name) {
    ob_start
        include("/includes/template/widgets/" . strtolower($name) . ".php");
        $content = ob_get_contents();
    ob_end_clean();
    return $content;
}

....
ClassName::getWidget("leftNavigator");

但如果我也改了它:

public static function getWidget($name) {
    ob_start
        include("/includes/template/widgets/leftNavigator.php");
        $content = ob_get_contents();
    ob_end_clean();
    return $content;
}

它会正常工作。

使用;

在文件中调用
$this->html = preg_replace('~\{widget.(\w+)\}~', Widget::getWidget("$1"), $this->html);

删除'strtolower(..)'后,我仍然收到错误。

1 个答案:

答案 0 :(得分:0)

包含其他内容时,您的文件区分大小写。你的文件有一个大写N和strtolower($ name)只是让所有字符都小写。

,而不是strtolower($ name)只需要$ name或其他东西。