2013-03-30 19 views
1

前几天我问了这个问题: How can I call HTML inside a DIV from a single location?如何在根目录中使用PHP文件和其他页面的相对路径?

我已经实现了它到我的网站,但我有一些问题。

我的组织结构是将每个页面放到它自己的文件夹中。

所以我有主要的index.html在根和CSS和PHP头文件。

然后我有其他页面在他们自己的文件夹,所以我可以摆脱html/php扩展名。现在

当我把

​​

到每个网页,链接被打破,因为每一个都需要不同级别访问PHP文件的根目录。有些人会是./别人../或../../

我发现现在的修复是使用全路径名:

http://mywebsite.com/trails/

但是我有感觉有更好的方法来做到这一点。

我也想过在每个目录中放置PHP头文件,但我认为这种方法打破了轻松编辑1个文件来改变它们的目的。

另一个想法是把所有东西放到一个目录中,但我不想这样做。

那么我错过了什么?

谢谢。

回答

4

做一个变量($root)或其他东西,并使用PHP的realpath()得到它的真实路径。

然后做这样的事情:

<?php include ($root . '/includes/header.php'); ?> 
+1

谢谢你,皮特范栋勤。 – ianbroad

+0

不客气,项目好运! –

8

很多网站都有某种中,他们将一个变量(实际上,通常是一个常数),他们定义了文档根目录网站的配置/引导文件:

<?php include(DOC_ROOT . '/includes/header.php'); ?> 
+0

谢谢!你们真是太棒了。 – ianbroad

+0

快速问题。我的主机是HostGator。当我进入phpMyAdmin时,有一个名为“服务器变量和设置”的选项卡。我要添加一个名为config的变量吗?我想我不确定我把你提供的信息放在哪里。 – ianbroad

+0

我不认为你应该在phpMyAdmin中这样做。这应该进入你自己的代码。 –

3

您:

defined('DOC_ROOT') || define('DOC_ROOT', __DIR__); 

然后,他们包括他们的文件时,使用此可以使用predefined variables__DIR____FILE__或定义你:

define("MY_WEB_DIR", '/var/www/html'); 
include(MY_WEB_DIR . '/includes/header.php'); 
+0

谢谢Barif。 – ianbroad

+0

我在哪里可以将define(“MY_WEB_DIR”,'/ var/www/html');? – ianbroad

相关问题