PHP include语句不包括使用相对路径的文件夹中的文件

时间:2012-04-01 17:49:04

标签: php web include

我正在自学网站开发并自学PHP和HTML。当我最初开始这个时,我设计了我的网站在windows xp上运行的apache。一旦我得到了大部分的错误,我将它加载到一个免费的服务器托管网站上,一切都是hunky dory。

不幸的是,Windows死了(我的system32文件夹中的文件已损坏),而我现在正在运行Linux Mint。我刚刚在它上面安装了apache2,php和mysql,所以我可以继续我的网站开发,但问题出在这里:

为了节省时间,我使用include语句包含我的页眉和页脚html文件,如下所示:

<?php include("./dir/file1.html");?>

这适用于Windows和免费服务器(我认为它运行的是Linux版本,但不要引用我的内容)。但是,它不再适用于我的机器了。这有效:

<?php include("./file2.html");?>

但我真的不想反映我拥有的每个网页。如何让我的include语句再次将文件包含在相对路径的文件夹中?

我尝试过的事情:

我已将include_path更改为指向dir,但无济于事。

我尝试过绝对路径,但这也无效。

我已经通过apache.conf和php.ini查找可能阻止其阅读的任何内容。

仔细检查文件夹和文件权限以确保可以读取。

任何和所有建议都将受到赞赏,非常感谢提前。

更新

使用require会给我错误:

网站在检索http://localhost/时遇到错误。它可能已关闭以进行维护或配置不正确。

哪个不是很有帮助。

仅使用include语句没有错误。

我的include_path中有一个“。:”。

最终更新

经过大量的反复试验,我得出结论,问题根本不涉及php或include语句,而是由于某种原因apache服务器不允许访问子目录。这个问题现在没有实际意义,应该关闭。

1 个答案:

答案 0 :(得分:0)

要使用相对路径包含文件,请确保include_path中有“。”,在php.ini或脚本中设置:

set_include_path( ".:" . get_include_path());