如何从include()文件创建相对于不同PHP文档的链接?

时间:2012-07-31 21:04:26

标签: php include relative-path

我正在设置我的网站以使用include()语句标准化页眉,页脚和导航等内容,例如

include('header.php);

但是,当我对两个不同目录中的页面使用相同的头文件时,header.php中包含的相对链接会中断,例如:

的header.php
<a href="images/dog.jpg">

的index.php
include('header.php);
成为
<a href="images/dog.jpg">

这是有效的,因为这是来自index.php文件的dog.jpg的正确路径。

动物/ canine.php
include('header.php);
成为
<a href="images/dog.jpg">

这不起作用,因为不存在animals / images / dog.jpg。

所以,我的问题是,我可以在header.php文件中更改哪些内容可以定制ur.to dog.jpg以及在包含header.php的情况下在animals.php和animals / canine.php中工作?

2 个答案:

答案 0 :(得分:7)

更改包含以使用绝对路径:

<a href="/images/dog.jpg">

这样,它们将基于您网站的根目录,并始终指向正确的文件夹。

答案 1 :(得分:1)

创建一个名为$root_path的新变量,并在其中添加相对于您所在页面的Web目录根目录的路径。在包含header.php

之前确保它已声明

这是mysite.com/junk/index.php,因此您的图片资源位于../images/

<?php
$root_path = '../'
include('header.php');

输出资产网址时,请将$root_path放在其前面。