跨不同子文件夹的相对URLS

时间:2014-07-13 21:48:28

标签: php url absolute-path relative-url

正在寻找一种方法,允许我的链接和包含网址等正确地在我的本地计算机上以及在我的实际网站上工作。

我有一个包含我的数据库连接的common.php文件。

我还有一个init.php文件,它包含在每个页面和里面,包括common.php文件(以及其他)

目前,我已经使用了

include './common.php';

但是,如果我在一个页面中,例如网/设置

./指向设置文件夹。

除了什么文件夹等,我应该使用什么作为相对URL才能在整个网站上运行?

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分: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.

你会发现使用命名空间会更方便,所以你可能想要走这条路。

答案 2 :(得分:0)

路径的快速答案就是这个。

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

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

所以如果你喜欢这个

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

在其他你可以做到

include BASE_PATH . 'template/temp.php';
一切都将被主index.php文件中的一个基础绑定,只要我作为root放在上面的文件夹包含你可以移动的所有内容,因为动态部分{{1} }

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

如果您使用的是PHP< 5.3使用此代替__DIR__

__DIR__