0

我正在学习 php,但现在遇到了引用问题。我搜索了很多,但找不到任何与我的确切结构问题有关的帖子。希望能克服这个障碍,这样我就可以走向下一个……

我的基本文件结构类似于:

domain.com/
        home.php
        images/
                global/
                        nav/
                            nav-img.jpg
        includes/
                menu.php
        fruit/
                apples/
                        red/
                            gala/
                                gala.php

我想创建一个全局路径来建立我的 Web 根目录,无论它位于何处,我都可以在每个页面中动态引用它。但是关于这个一般主题的其他帖子给出了 [10] 我可以使用的不同功能。我只想要[1]。另外,我不知道在哪里放置 [例如] 定义(ROOT),或者如何从单个页面调用它。

define(ROOT) 是否适合我的情况?


知道所有页面都使用 [menu.php],我的障碍:

从 gala/gala.php - 当我点击 [home] 时,它会寻找:

/fruit/apples/red/gala/home.php  [does not exist, of course!]

此外,如果可能的话,尽量避免这些 [2] 的事情:

一、在gala.php中使用html文件引用如下:../../../../ includes/menu.php

找到正确的全局包含。

二、并避免在menu.php中使用链接引用,如下所示:/images/global/nav/nav-img.jpg

任何反馈将不胜感激 [+] 或 [-]。非常感谢。

4

1 回答 1

0

好的,这就是我所做的似乎最好的:

对于I. 和 II。为了避免在所有src ="" 和href =""中使用这么多 ../../../../我刚刚解决并使用了带有前导斜杠的站点相关文件引用,例如 "/includes/menu .php”,这将使我进入站点根目录,从那里构建文件的位置。

对于全局文件参考,这两种方法都有效:

<?php 
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/";
?> 
// in `<head>` section

并使用<?php include ('menu.php'); ?>

或者这个也有效:

<?php 
define('ROOT',$_SERVER['DOCUMENT_ROOT']); 
define('INCLUDES',ROOT.'/includes/'); 
?>  
// in `<head>` section

<?php include (INCLUDES.'menu.php'); ?>在另一个级别的文件中使用。

于 2013-04-10T05:07:21.517 回答