2011-06-04 55 views
1

我正在创建一个相当复杂的Web应用程序。我喜欢使用php来帮助减少最终使用的重复代码的数量,如果您愿意,可以创建页面插件。使用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等元素组织一个超级组织的文件结构。但它导致我1个小问题。

当我创建上面链接的模块时,它们自己具有对图像或其他脚本以及它们使用的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' 

,但不能完全得到那个工作要么...

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

+0

感谢所有我设法解决了我的PHP解决方案的问题我错过了一个“在那里!很容易做到” – 2011-06-04 14:45:20

回答

1

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

例如:

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

第二个需要你管理你的网站 第一个是绝对的每一个文件的更新路径,并屡试不爽。

如果您遇到与您的PHP require相同的问题,您只需使用$ _SERVER ['DOCUMENT_ROOT']。 '/ rest/of/path/from/absolute'

+0

我已经标记为答案作为一个很好的解决方案!但我很好奇地使用我的PHP版本。 – 2011-06-04 14:45:56

0

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