PHP: проблема обратной косой черты в корневом каталоге документов - PullRequest
0 голосов
/ 06 января 2010

Я пытаюсь сделать ссылку на таблицу стилей в моем заголовочном файле, используя $ _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

Я должен использовать абсолютные пути - потому что я не хочу копировать папку включения в каждый подкаталог приложения. Мне нужно иметь возможность ссылаться на него из любого места.

Ответы [ 6 ]

9 голосов
/ 06 января 2010

Просто используйте это:

<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 голос
/ 06 января 2010

Не используйте абсолютный путь к файловой системе, используйте путь относительно (но не включая) корня документа. В этом случае просто /include/style.css.

1 голос
/ 06 января 2010

Попробуйте использовать:

$_SERVER['HTTP_HOST']
0 голосов
/ 06 января 2010

Прежде всего, корнем документа является буквально каталог, в котором находится веб-сервер /. Вы обычно не хотите использовать это с любым контентом в Интернете. Используйте / вместо.

0 голосов
/ 06 января 2010

Попробуйте использовать константу DIRECTORY_SEPARATOR. Возвращает \ в системах Windows и / в системах * nix.

0 голосов
/ 06 января 2010

Для использования локальных файлов из браузера используйте схему file.

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

Не уверен, что вам нужны две или три косые черты, возможно, две на окнах с буквой диска, три на * nix с корневой косой чертой, хотя, похоже, я помню, что видел три косые черты с буквой диска. Попытайся! : P

...