0

寻找一种允许我的链接和包含 URL 等在我的本地机器上以及在我的实时站点上正确工作的方法。

例如,我有一个 common.php 文件,其中包含我的数据库连接。

我还有一个 init.php 文件,该文件包含在每个页面上,其中包含 common.php 文件(以及其他文件)

目前,我已经使用

include './common.php';

但是,如果我在一个页面中,例如 web/settings

./ 指向设置文件夹。

无论文件夹等是什么,我应该使用什么作为可以在整个站点上使用的相对 URL?

4

3 回答 3

1

怎么样/?它指的是基础,从那里你可以使用绝对路径:

include "/absolute/path/to/file/common.php";

相对 URL 始终受当前目录的影响,无论您在站点的哪个位置,都无法使其相同。您需要使用绝对路径。

于 2014-07-13T21:50:11.557 回答
0

你可以用$_SERVER['DOCUMENT_ROOT']这个。

set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );

// Now, you can specify your path relative to your DOCUMENT_ROOT.
include('common.php'); // Assuming your common.php file is in your root path.

不过,您会发现使用命名空间更方便,因此您可能想走这条路。

于 2014-07-13T22:04:00.277 回答
0

路径的快速答案是这样的。

__DIR__= 当前工作目录所以如果你有 MVC 类型架构(单点入口又名前端控制器,基本上所有内容都从一个文件开始,通常是 index.php,其余的都包括在内)你可以在那个 main 中定义一个像这样的常量文件。

define( 'BASE_PATH', __DIR__.'/' );

所以如果你有这样的

root
    index.php //define basepath
    includes :
        other.php
    template :
        temp.php

在其他你可以做

include BASE_PATH . 'template/temp.php';

一切都将与主 index.php 文件中的那个基本集相关联,只要我作为根目录放在上面的文件夹包含您可以移动的所有内容,因为动态部分__DIR__

长答案是使用 PSR-0 自动装载机,但这可能有点矫枉过正。

另一方面,如果您使用的是 PHP < 5.3,请使用 this 而不是__DIR__

dirname(__FILE__)
于 2014-07-13T22:06:24.230 回答