PHP:定义与HTML标记兼容的相对路径

时间:2009-09-03 23:47:57

标签: php html parsing relative-path

考虑以下目录结构:

  • ROOT
  • ------ 图片
  • ............... logo.png
  • ------ 包括
  • ............... vars.php
  • ------ 布局
  • ............... content.php
  • ------ index.php

如何在 index.php vars.php 中为 logo.png 定义路径常量> content.php ?应与HTML标记兼容,作为相对路径。

<img src="<?php echo IMAGE_PATH; ?>">

应解析为

<img src="images/logo.png"> <!-- if used in index.php -->

<img src="../images/logo.png"> <!-- if used in content.php -->

新问题(编辑):使用 include / require 方法包含php文件时,根相对路径是否有效?

6 个答案:

答案 0 :(得分:4)

尝试在代码的<base>部分设置<head>标记。

您的所有图片,css和js文件都将使用此文件而不是地址栏中的网址。

Info on base

答案 1 :(得分:3)

绝对网址或根路径将为您提供最少的空间。相信我,当系统增长时,你会后悔这个设置。

参考事物是完全合法的方式。 (正如你在评论中提到的那样)

如果您担心域之间的设置,只需使用域/目录/ etc的绝对路径创建一个配置变量

答案 2 :(得分:3)

您可以使用“root-relative”路径。只需在开头使用正斜杠链接到所有内容,即

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

这将从yoursite.com上的每个页面解析为http://yoursite.com/images/logo.png

答案 3 :(得分:1)

只需指定所有路径相对于根

<img src="/images/logo.png"> <!-- will work anywhere  -->

答案 4 :(得分:0)

我建议主要使用根相对路径。这只是为了减少将站点移动到另一台主机的复杂性,并且它还允许一致的路径(而不是使用if()条件来测试脚本运行的位置。)

但除此之外,你的建议没问题。

答案 5 :(得分:0)

我会使用像应用程序基础URL这样的东西:

define('APP_URL', 'http://example.com/path/to/app');
echo '<img src="'.APP_URL.IMAGE_PATH.'">';

或者为了更方便,编写一个函数将相对URL解析为绝对URL。