widzę jeden powód, dla którego chce mieć dynamiczny i względną ścieżkę dla generacji href linki, a to jest po uruchomieniu projektu na wielu domen lub witryn, które mają różne ścieżki. (Na przykład Twój projekt jest dostępny pod numerem http://myproject.example.org/, a także pod numerem http://example.org/myprojecttest/).Jeśli tak nie jest, to chciałbym zaproponować bezpośrednio podając swój css zawiera w stosunku do głównego folderu:
<link href="/css/style.css" />
jeśli to ma zastosowanie do ciebie, spróbuj tego:
W każdym dokumencie najwyższego poziomu która wymaga header.php, dodaj zmienną $ ROOT, która wskazuje położenie dokumentu najwyższego poziomu w porównaniu z katalogiem głównym. np:
$ROOT = './';
lub
$ROOT = '../';
lub
$ROOT = '../../';
Teraz w pliku header.php, można użyć:
<link href="<?php echo $ROOT; ?>css/style.css" />
ten pozwala na dokonywanie plik header.php, który będzie działał dla dowolnej strony o dowolnej ścieżce względnej.
Pełna Przykład
dołączonego pliku (/path/header.php)
<html><body>
<head>
<link href="<?php echo $ROOT; ?>css/style.css" />
[...]
pliku 1 (/path/index.php)
<?php
$ROOT = './';
include 'header.php';
?>
pliku 1 (/path/admin/index.php):
<?php
$ROOT = '../';
include '../header.php';
?>
pliku 3 (/path/admin/test/magic.php):
<?php
$ROOT = '../../';
include '../../header.php';
?>
Dlaczego nie używać ścieżek względem Twojej domeny, takich jak '/ styles/your.css' –
Użyj pełnego linku dla CSS w pliku header.php – Adsy2010