【发布时间】:2013-03-05 04:20:56
【问题描述】:
(请耐心等待,这确实与包含有关。)我正在等待一个域转移过来,并尝试提前在新的托管服务上设置它。我意识到在旧网站上所有的路径名都是绝对的,所以我在新主机上的所有链接都指向旧主机上的页面。我决定将它们全部设为相对(也用于未来可能的移动)。我第一次这样做是这样的:
index.php
include ('./header.php');
header.php
include "./panel.php";
panel.php
Contents of panel.
这有效,我的页面显示:
面板的内容。
然后我决定为域设置一个变量,因为我想从子目录中的文件中包含这个头文件,并且我可以使用域变量来创建一个绝对路径。现在我有一个临时域名,稍后我可以在转移完成时将其更改为真实域名。所以我将 header.php 更改为:
$domain="http://tempdomain.com"; //I can change this after the transfer
$panel=$domain."/panel.php";
echo $panel;
if ((include $panel) !== 1)
{
echo "<br>include failed";
}
我得到的是:
http://tempdomain.com/panel.php
包含失败
我查看了各种站点的包含语法,但在我的代码中找不到任何错误。所有这些文件都在 / 目录中。有什么想法吗?
【问题讨论】:
-
我希望您了解文件系统和通过 http 协议访问文件之间的区别。 :) IE。要包含脚本,您应该在文件系统上使用物理路径。
-
在
if((include "$panel") !== 1)周围添加双引号。看看会发生什么 -
@Ranjith It does not matter.
-
@PLB :该代码的解决方案是什么..
-
@Ranjith 我能想到两种解决方案。首先,在文件系统上使用路径(通常每个人都应该这样做)。其次,使用
file_get_contents通过http 获取内容并使用eval执行该脚本。第二种方法可以,但千万不要使用!
标签: php variables include filenames