php:包含文件中的相对路径

时间:2013-02-15 12:10:21

标签: php html relative-path

我有一个html文件images.html,显示子目录“img”中的图像。它使用相对路径访问subdir中的图像。

在我的index.php中,一切都出错了:

require_once("dir1/dir2/images.html");

现在相对路径是相对于我的index.php,而不是dir1 / dir2 / images.html,我看不到我的图像。有没有办法让路径相对于包含文件images.html?

目录结构

index.php
dir1
   dir2
       images.html
       img
           flower.png

的index.php

<?php require_once("dir1/dir2/images.html"); ?>

images.html

<img src="img/flower.png" />

2 个答案:

答案 0 :(得分:2)

这是一个HTML问题,而不是PHP。

当您使用浏览器/dir1/dir2/images.html进行访问时,浏览器使用/dir1/dir2作为相对路径的基础(因此相对路径img/flower.png已解析为/dir1/dir2/img/flower.png)。当您访问/index.php时,它会使用/作为基础(因此img/flower.png会提供/img/flower.png,但无法找到。{/ p>

你可以:

  • 使用图像的绝对路径(例如/dir1/dir2/img/...
  • 使用base tag所有相对路径(包括链接,CSS等)设置新基础 - 编辑:在您的情况下,这可能不是一个好主意:)< / LI>

答案 1 :(得分:0)

include(dirname(__FILE__).'/include.php');

参考:http://php.net/manual/en/language.constants.predefined.php

文件的完整路径和文件名。如果在include中使用,则返回包含文件的名称。自PHP 4.0.2起, FILE 总是包含已解析符号链接的绝对路径,而在旧版本中,它在某些情况下包含相对路径。