[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с путями
Gaist-Endruy
Всем привет!

Есть у меня код который случайным образом с определенной директории выводит html файл.
Дело в том, что

<?
$num_of_html = 1; // количество файлов на странице
$html_dir = "./files/base/"; // папка с файлами
$html_tip = ".html"; // расширение файлов для вывода
...........

Если я на главной странице сайта то все работает, но если к примеру я перехожу на другую страницу к примеру: site/galereya/ то тогда кабі путь в
$html_dir    = "./files/base/";    // папка с файлами
должен быть таким:
$html_dir    = "./../files/base/";    // папка с файлами
Но не могу я на каждой странице прописывать путь по отдельности, пробывал указывать прямой путь посредством ссылки: адрес_сайта/files/base/ но тогда не работает ничего....

Как мне сделать, или переделать код, таким образом что бы он работал на всех страницах...

Сам код:
<?
$num_of_html = 1; // количество файлов на странице
$html_dir = "./files/base/"; // папка с файлами
$html_tip = ".html"; // расширение файлов для вывода

// =======================================================


$html_array = array();
$d = dir($html_dir);
while($entry=$d->read())
{
if(ereg("html$",$entry))
{
$html_array[] = $entry;
}
}

$d->close();

srand ((double) microtime() * 10000000);
$rand_keys = array_rand($html_array,$num_of_html);

echo "<table align=center cellpadding=10 width=400
cellspacing=0 border=0 style=
\"border: solid 1px black;\">";
for($m=0;$m<$num_of_html;$m++)
{
echo "<tr><td>";
if($num_of_html==1)
{
include($html_dir."/".$html_array[$rand_keys]);
}
else
{
include($html_dir."/".$html_array[$rand_keys[$m]]);
}
echo "</td></tr>";
}
echo "</table>";

?>




Спустя 2 часа, 27 минут, 50 секунд (6.08.2011 - 11:01) Winston написал(а):
Цитата (Gaist-Endruy @ 6.08.2011 - 08:33)
$html_dir    = "./files/base/";    // папка с файлами

Это значит, что каталог находится там же где и этот php файл, в котором эта строка прописана.
Если нужный каталог лежит на уровень выше чем файл php
Цитата (Gaist-Endruy @ 6.08.2011 - 08:33)
$html_dir    = "./../files/base/";    // папка с файлами

Это не правильно написано
$html_dir    = "../files/base/";    // папка с файлами

Так нужно.

Спустя 1 час, 39 минут, 7 секунд (6.08.2011 - 12:40) killer8080 написал(а):
Gaist-Endruy
Нужно всегда использовать абсолютные пути, тогда таких проблем не будет
$html_dir = $_SERVER['DOCUMENT_ROOT'] . "/files/base/";    // папка с файлами

Спустя 19 часов, 18 минут, 30 секунд (7.08.2011 - 07:59) Gaist-Endruy написал(а):
Всем огромное спасибо! Все работает!

Спустя 4 часа, 12 минут, 17 секунд (7.08.2011 - 12:11) Gaist-Endruy написал(а):
А можно сделать тоже самое к примеру вот с таким:
<link href="style.css" rel="stylesheet" type="text/css" />

Спустя 2 минуты, 39 секунд (7.08.2011 - 12:14) alex12060 написал(а):
Gaist-Endruy


echo $_SERVER['HTTP_HOST'];

Спустя 1 минута, 26 секунд (7.08.2011 - 12:15) Winston написал(а):
href="<?php echo $_SERVER['HTTP_HOST'] ?>/style.css"

Спустя 11 минут, 23 секунды (7.08.2011 - 12:27) Romms написал(а):
href="<?=$_SERVER['HTTP_HOST'] ?>/style.css"

:rolleyes:

Спустя 3 минуты, 23 секунды (7.08.2011 - 12:30) Winston написал(а):
Цитата (Romms @ 7.08.2011 - 12:27)
<?=$

Это будет безгемморно в PHP 5.4
А сейчас стоит обратить внимание на short_open_tag

Спустя 1 час, 50 минут, 59 секунд (7.08.2011 - 14:21) killer8080 написал(а):
Всё намного проще
<link href="/style.css" rel="stylesheet" type="text/css" />


но если нужно чтобы движок был универсальный и мог работать не только в корневой директории сайта, то можно так
// эта константа должна объявляться в главном индексе 
// или другом файле расположенном в корне движка

define('HOME_PATH', strtr(substr(dirname(__FILE__).'/', strlen($_SERVER['DOCUMENT_ROOT'])), '\\', '/'));
<link href="<?php echo HOME_PATH; ?>style.css" rel="stylesheet" type="text/css" />
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.