使用php导航文件结构以动态创建页面

时间:2011-06-04 14:28:23

标签: php html

我正在创建一个非常复杂的Web应用程序。我喜欢使用php来帮助减少我最终使用的重复代码的数量,如果你愿意,可以创建页面插件。

代码部分的示例如下所示:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>        
        <?php require_once("root/html_classes/head_links.html"); ?>
        <link href="home/css/home.css" rel="stylesheet" type="text/css" />
        <title>Texation</title>
    </head>

正如您所看到的,上一节中有一个<?php ?>引用。由于这个项目将会如此庞大,我决定为所有页面,脚本,javascript,css等元素提供超组织的文件结构。但它引起了我一个小问题。

当我创建上面链接的模块时,它们自己引用了它们使用的图像或其他脚本和css文档,但这种插入html的形式意味着所有目录路径都需要针对它们插入的每个页面进行更改,实例,

当我在index.php页面上使用它们时,menu.html中图像的路径将是“root / images / someimage.jpg”但是如果我在登录脚本上使用它,那么同一图像的路径就会需要是“../ images / someimage.jpg”

任何人都可以建议一种使这些路径动态的方法,考虑到它们“插入”的页面在目录结构中的currant位置吗?

我虽然使用php来构建类似

的东西
'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/root/images/someimage.jpg'

但是不能让它工作......

感谢您的时间,非常欢迎和赞赏任何建议。

2 个答案:

答案 0 :(得分:1)

如果您正在谈论资源的路径,为什么不使用绝对路径?

示例:

 /root/images/ = http://domain.com/root/images
 root/images = [Current directory]/root/images

第二个需要您管理站点中每个文件的更新路径 第一个是绝对的,每次都有效。

如果你的PHP require遇到同样的问题,你需要使用的是$ _SERVER ['DOCUMENT_ROOT']。 '/休息/的/路径/从/绝对'

答案 1 :(得分:0)

也许我错过了一些东西,但你不能只创建几个常量来存储你在<img><a href="">标签中使用的目录的硬编码路径吗?