更好的方法来反驳网站内的网页

时间:2015-08-10 11:07:56

标签: php include

我正在为我的网站使用复杂的文件夹结构,这使得我的内容组织变得简单。但是,当我需要链接到页面时,我经常需要采用这种方法:

include_once '../../../assets/php/DB/DBConnect.php';

我有办法摆脱所有../事吗?

2 个答案:

答案 0 :(得分:1)

尝试

方法01

$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/assets/php/DB/DBConnect.php";
include_once($path);

方法02

include_once $_SERVER["DOCUMENT_ROOT"].'/assets/php/DB/DBConnect.php';
  

注意

     

我发现在某些环境DOCUMENT_ROOT似乎没有正确设置。我设计了一种独立于服务器的方式,以及托管服务提供商是否也能够设置包含或自动前置路径。

     

每个目录都包含一个名为'meta'的{​​{1}}文件(或任何想要调用它的文件)。对于该目录中的任何文件,它们只是将其包含为'__php__.php'。文件本身只包括父目录中一直到站点根目录的文件。然后,站点根目录中的文件可以包含其他文件,即使服务提供商不支持自动包含文件的简单方法,也可以定义<?php include('__php__.php'); ?>之类的变量,然后可以在以后使用。如果文档文件被移动到另一个目录,它们仍然会在该目录中包含'SITE_ROOTDIR'文件,并且仍会从顶部__php__.php文件中获取SITE_ROOTDIR常量。

     

我也为一个简单的导航栏做了类似的事情,其中​​每个目录都有一个__php__.php文件,每个页面只是将它包含在正确的位置,它可以包含父导航元素并定义自己的导航元素。

     

这样做的一个优点是网站的一部分可以在子目录中划分,并且仍然获得该部分的根,即使它不是实际的文档根。 缺点是指在流量较大的网站上执行所有包含时速度可能会变慢。

     

又一个:

__navbar__.php

答案 1 :(得分:0)

改变
include_once '../../../assets/php/DB/DBConnect.php';

include_once $_SERVER["DOCUMENT_ROOT"].'/assets/php/DB/DBConnect.php';

注意 assets应该是您的第一个子文件夹。