Показать сообщение отдельно
Старый 01.08.2011, 16:34
TTS вне форума Посмотреть профиль Отправить личное сообщение для TTS Найти все сообщения от TTS
  № 1  
Ответить с цитированием
TTS
 
Аватар для TTS

Регистрация: Jan 2002
Сообщений: 1,323
По умолчанию php_self для включенного файла

Что-то я невъезжаю, вроде задачка простая.
есть папка на сервере, допустим, /folder
в ней файл, допустим file.php и стиль style.css, который прописан обычным образом:
Код:
<link rel="stylesheet" href="style.css" type="text/css">
еще есть файл /index.php, в котором есть команда include('folder/file.php')

если я в браузер гружу file.php, то он прекрасно цепляет стиль, а если index.php, то стиль в пролете.
Так вот, че делать? Могу жестко прописать полный путь href="/folder/style.css" и проблема решена. Но это некошерно, т.к. при если я через полгода вздумаю изменить название папки, придется сначала втыкать, почему перестало работть, а потом переписывать путь.

Ход мыслей примерно таков: надо писать что-то вроде:
Код:
<link rel="stylesheet" href="<?php
echo dirname($_SERVER["PHP_SELF"]);
?>/style.css" type="text/css">
но оказывается все, что может дать $_SERVER, относится в включающему, но не к включаемому файлу, даже упомянутый PHP_SELF, что, если честно, меня удивило.
Единственное, что я нашел с путем к file.php - это __FILE__, но это будет реальный путь, от него толку нет. Сделать из него нормальный я пытался, вычтя из него DOCUMENT_ROOT:
Код:
substr(__FILE__, strlen($_SERVER['DOCUMENT_ROOT']));
Но оказалось, что корень у них разный:
Код:
$_SERVER["DOCUMENT_ROOT"] = /var/www/clients/...
__FILE__ = /home/www/clients/....
Как победить эту бадягу?
__________________
ВКЛЮЧИ МОЗГИ!!!
Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin