包含小部件时收到以下错误;
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(..)'后,我仍然收到错误。
答案 0 :(得分:0)
包含其他内容时,您的文件区分大小写。你的文件有一个大写N和strtolower($ name)只是让所有字符都小写。
,而不是strtolower($ name)只需要$ name或其他东西。