包括访问同一目录中文件的子目录中的文件


Include file in sub-directory that accesses file in same direcrory

我有一个PHP脚本(index.PHP),它在子目录(site1.com)中包含一个index.html文件。这个index.html文件显示位于同一目录(site1.com)中的图像。

现在,index.php文件包括index.html文件。显示了index.html中的html,但没有显示图像。index.html文件正在ROOT目录中查找要显示的图像。这就是问题所在。我想以某种方式包含site1.com目录的所有内容,而不仅仅是单个"index.html"文件。

我试过更改工作目录,但没有成功。也许我只是没有正确使用它。。。

出于我不想解释的原因,我不想在PHP或Apache中编辑任何配置设置。我也不想修改index.html的代码。基本上,我需要找到一个可以100%用PHP实现的解决方案。当实际显示子目录(site1.com)中的内容时,url需要显示为用户仍在根目录(mysite.com)中。在某种程度上,这有点像一个透明的代理。

 [FILE] index.php
 [DIR]  site1.com
   [FILE]  index.html
   [FILE]  img1.png
   [FILE]  img2.png
 [DIR]  site2.com
   [FILE]  index.html
   [FILE]  img1.png
   [FILE]  img2.png

我已经做了大量的搜索,但还没有找到一个有效的解决方案。

include()/require()文件时,就好像该文件的内容被剪切/粘贴到执行include的脚本中一样。如果index.html使用site1.com目录中的图像,则必须使用基于index.php位置的路径来引用这些图像

远程用户无法判断你是否包含了网站子目录中的文件——他们只会看到一些来自服务器的html,所以如果你的index.html有类似的东西

<img src="img1.png" />

在中,但是html是从index.php脚本中显示的,那么浏览器将查找

http://example.com/img1.png

不是

http://example.com/site1.com/img1.png

输出正确的路径取决于您。