Есть у меня код который случайным образом с определенной директории выводит 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" />