我有一个名为get_header()
的函数,它在模板中包含头文件(有点像wordpress),它正在工作。我的函数文件中还定义了一个stylesheetURL()
函数,它获取模板的样式表URL。
在我的header.php文件中(在“design”子目录中),我正在调用stylesheetURL,PHP说它未定义。
这是结构:
pagehandler.php - 处理页面请求。包括'load.php'然后'design / page.php'
load.php - 包含'functions.php'和类。
functions.php - 包含像get_header和stylesheetURL这样的过程函数。 get_header实际上包含了header.php文件作为函数内部的绝对URL(http://website.com/design/header.php),但由于函数没有作用域,它仍然应该调用stylesheeturl函数。< / p>
page.php - 调用函数get_header()
,回显内容,然后调用get_footer()
。
header.php - 调用stylesheetURL()
。 &LT;&LT;这就是它破裂的地方。头文件包含正常,但无权访问任何函数。
为什么会这样?
编辑: // settings是一个全局数组,如果从header.php或footer.php以外的任何文件调用,siteURL就会显示url。
function siteURL() {
global $settings;
return $settings['site_url'];
}
function designURL() {
$siteurl = siteURL();
return $siteurl.'/design';
}
function stylesheetURL() {
$durl = designURL();
return $durl.'/style.css';
}
function get_header() {
$durl = designURL();
require $durl.'/header.php';
}
事实上,如果我从get_header()
更改为include 'header.php'
,它会按预期工作。
答案 0 :(得分:0)
我想这是因为,你不能通过网址要求文件。您需要一个路径,而不是需要文件的URL。如果您在php.ini中设置了远程文件包含,则包含正在运行。