为什么包含路径仅适用于" /"在开始?

时间:2016-01-18 20:26:56

标签: php include

我希望index.php包含位于footer.html文件夹中的include文件,该文件位于index.php所在的同一文件夹中。

我注意到如果我使用它将不起作用:

<?php include '/include/footer.html'; >

我会得到:

  

警告:include(/include/footer.html):无法打开流:没有   

中的文件或目录

只有在我使用时才会有效:

<?php include 'include/footer.html'; >

这很令人困惑,因为与此同时,我确实使用第一种形式来包含脚本和图像:

<script src="/js/script.js"></script>

<img src="/images/logo.jpg">

顺便说一句,将所有包含的文件集中在指定的文件夹中会更好吗?

1 个答案:

答案 0 :(得分:1)

令人困惑的是,PHP include()根据服务器本身的物理文件路径查找文件。它与您的网址无关。

你可以这样做:

<?php include './include/footer.html'; >

或者:

<?php include 'include/footer.html'; >

或者:

<?php include __DIR__ . '/include/footer.html'; >

如果您<?php echo __DIR__ . '/include/footer.html'; ?>,您会在磁盘上看到footer.html的完整路径。在Linux / UNIX系统上,/是系统的根目录,因此当您使用/include/footer.html时,它正在系统的根目录中查找名为include的目录,以及footer.html在它里面。}