PHP: Belge kök dizin ters eğik çizgi sorunu

6 Cevap php

Ben aşağıdaki gibi ["DOCUMENT_ROOT"] $ _SERVER kullanarak benim header dosyasına bir biçembente bağlamak için çalışıyorum:

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

</head>

: Ben lokal test ediyorum beri, ben yolu olarak alıyorum

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

</head>

Ve bu Firefox'ta işleme değil. Ancak IE'de yapar. Bu tabii ki bir doğrulama konudur. ANCAK, ben bir sunucu üzerinde aynı kodu çalıştı - aynı sonuçları ile. (

Nasıl bu sabitleme gitmek mi? Son ürün ya da bir yerel sunucuda çalıştırabilirsiniz olmayabilir, bu yüzden esnek olması kodu gerekir ..

PHP 5.2.8 ile Abyss Webserver x1 kullanıyorum

I must use absolute paths - because i do not want to copy the include folder to every subdirectory of the app. I need to be able to refer to it from every location.

6 Cevap

Sadece bu kullanın:

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

Ya da, lokal olarak kullanıldığı takdirde:

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

Belge kök HTML içinde değil, yalnızca için (PHP içinde) iç kullanım içindir.

Kullanmayı deneyin:

$_SERVER['HTTP_HOST']

Belge kök (ancak dahil değil) göreceli bir yol kullanmak, bir dosya sistemi mutlak yolu kullanmayın. Bu durumda sadece /include/style.css.

Tarayıcıdan yerel dosyaları kullanmak için, file düzeni kullanmak.

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

Emin değilim sürücü harfi ile üç bölü görünce hatırlamak gibi görünüyor olsa da iki veya üç bölü, sürücü harfi ile windows üzerinde muhtemelen iki, kök eğik çizgi ile * nix üzerinde üç, gerekiyorsa. Deneyin! : P

DIRECTORY_SEPARATOR sabiti kullanmayı deneyin. Bu * nix sistemleri / Windows sistemlerinde \ döner ve.

Her şeyden önce, belge kök anlamıyla web sunucunun / bulunmaktadır dizin. Genellikle web üzerinde herhangi bir içerik ile bu kullanmak istemiyorum. Yerine / kullanın.