PHP:记录根目录反斜杠问题

时间:2010-01-06 19:09:20

标签: php backslash

我正在尝试使用$ _SERVER [“DOCUMENT_ROOT”]链接到我的头文件中的样式表,如下所示:

<head>
    <?php
        print "<link href='".$_SERVER["DOCUMENT_ROOT"]."/include/style.css' rel='stylesheet' type='text/css' />";
    ?>
    <title>eLMS</title>

</head>

由于我在本地测试,我的路径为:

<head>
    <link href='C:\Users\wretrOvian\Documents\eLMS\site/include/style.css' rel='stylesheet' type='text/css' />      <title>eLMS</title>

</head>

这不是在Firefox中呈现的。然而,它确实在IE中。这显然是一个验证问题。但是,我在服务器上尝试了相同的代码 - 结果相同。 :(

我如何解决这个问题?最终产品可能在本地服务器上运行,也可能不运行,所以我需要代码灵活。

我正在使用Abyss Webserver x1和PHP 5.2.8

我必须使用绝对路径 - 因为我不想将include文件夹复制到应用的每个子目录。我需要能够从每个位置引用它。

6 个答案:

答案 0 :(得分:9)

请使用:

<head>
    <link href='/include/style.css' rel='stylesheet' type='text/css' />
    <title>eLMS</title>
</head>

或者,如果在本地使用它:

<head>
    <link href='../include/style.css' rel='stylesheet' type='text/css' />
    <title>eLMS</title>
</head>

文档根目录仅供内部使用(在PHP内部),不适用于HTML。

答案 1 :(得分:1)

尝试使用:

$_SERVER['HTTP_HOST']

答案 2 :(得分:1)

不要使用文件系统绝对路径,使用相对于(但不包括)文档根目录的路径。在这种情况下只是/include/style.css

答案 3 :(得分:0)

要使用浏览器中的本地文件,请使用file方案。

file://C:/dir/file.ext
file:///dir/file.ext

不确定你是否需要两个或三个斜杠,可能是两个带有驱动器号的窗口,三个带有根斜线的* nix,但我似乎记得看到带有驱动器号的三个斜杠。试试吧! :P

答案 4 :(得分:0)

尝试使用DIRECTORY_SEPARATOR常量。它在Windows系统上和/在* nix系统上返回\。

答案 5 :(得分:0)

首先,文档根目录是Web服务器所在的目录。您通常不希望将此与网络上的任何内容一起使用。使用/代替。