从PHP造成损坏的链接包括引用(Broken links resulting from php in

2019-10-29 04:09发布

我正在学习PHP的,但有参考的问题,现在是靠墙。 我搜索了很多,但我无法找到我确切的结构性问题的文章。 希望能掌握这一关,所以我可以向未来移动...

我的基本文件结构是这样的:

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

我想创建一个全球性的路径设定我的,我可以在飞行中的每个页面无论它位于引用网站根目录。 但在这个一般性的主题的其他职位给予[10]不同的功能,我可以使用。 我只是希望[1]。 另外,我不知道放在哪里[例如]定义(ROOT),或如何从一个单独的页面调用。

将定义我的情况(ROOT)的工作?


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

从盛大/ gala.php - 当我点击[首页],它寻找:

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

此外,试图尽可能地避免这些[2]的事情:

一,使用HTML文件引用在这样gala.php:../../../../includes/menu.php

找到正确的全球包括。

II。 并避免在这样menu.php使用链接引用:/images/global/nav/nav-img.jpg

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

Answer 1:

好吧,这里就是我这样做,似乎是最好的:

对于一和二。 为了避免在所有的SRC =“用这么多../../../../”和HREF =“”我刚刚尘埃落定,并使用斜线开头 ,站点相对文件引用,如“/包括/菜单.PHP”,这将让我的网站根目录,从那里建立文件的位置。

对于全球文件引用 ,这两种工作:

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

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

或这一个了保护正常工作:

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

并使用<?php include (INCLUDES.'menu.php'); ?> <?php include (INCLUDES.'menu.php'); ?>在另一个层面上的文件。



文章来源: Broken links resulting from php include references