我正在寻找切换到新主机的机会,他们提供了这个不错的小“临时 URL”,以便在切换之前测试您的文件。一切都很好,花花公子。所以我复制了所有文件。在每一页的顶部我require
来自服务器的另一个文件,存储在public_html/includes/head.php
。现在,无论出于何种原因, $_SERVER['document_root'] var 返回 /public_html/htdocs/includes/head.php (服务器上不存在)而不是 /public_html/includes/head.php (确实存在) 。结果错误如下:
Warning: require_once(/home/secure31/public_html/htdocs/includes/head.php)
[function.require-once]: failed to open stream: Permission denied in
/home/stephe80/public_html/index.php on line 6
有罪代码:
require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');
我倾向于认为这是与他们的临时 url 设置相关的错误,但我不想通过我的 DNS 传输并发现我的所有文件都已损坏。我可以将它们更改为绝对路径,但我很好奇我是否遗漏了某些内容。任何见解将不胜感激。谢谢!
我建议使用__FILE__ http://php.net/manual/en/language.constants.predefined.php常量并从那里计算出您的 htdocs 文件夹。它比依赖 $_SERVER 超级全局可靠得多,因为这实际上因服务器而异。
示例(您可以在根文件夹中调用index.php):
$htdocs = str_replace(basename(__FILE__), __FILE__, '');
define('ROOT_FOLDER', $htdocs);
require_once(ROOT_FOLDER . '/includes/head.php');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)