Родительские каталоги и PHP - PullRequest
       5

Родительские каталоги и PHP

0 голосов
/ 09 августа 2011

Я действительно надеюсь, что есть простое решение для этого.

<?php include("header.php"); ?>

Допустим, у меня в корневой папке есть php-заголовок, просто озаглавленный header.php . В этом заголовке есть ссылка на домашнюю страницу, main.php , а main.php также находится в корне. Пока проблем нет. Вот как выглядит header.php . Простые вещи, верно?

<link href="style.css" rel="stylesheet" type="text/css" />

<div id="headerwrap">

        <div id="linkbox">
            <a href="main.php"><img src="images/mainlogo.png" /></a>
        </div><!-- End linkbox -->

</div>

Однако, допустим, у меня есть другие страницы в подкаталогах. Subpage.php находится в дочернем каталоге корня, и поэтому он должен обратиться к корню, чтобы получить включенный header.php .

<?php include("../header.php"); ?>

Это не будет большой проблемой, за исключением того, что header.php ссылается на main.php , а также на таблицы стилей, ни одна из которых не находится на * подстранице. Каталог .php , что приводит к ошибке, когда кто-то на Подстранице пытается вернуться в Main по ссылке в шапке.

Я просто надеюсь, что есть простой способ сделать эту работу, и мне не нужно копировать и перенаправлять все включения в каждый подкаталог. Кроме того, существует слишком много страниц, чтобы действительно разумно включить их все в корень. Извините, если этот ответ опубликован в другом месте; Я посмотрел и просто понятия не имею, что я ищу. Спасибо за вашу помощь. Надеюсь, все это имеет смысл.

Ответы [ 5 ]

1 голос
/ 09 августа 2011

В отличие от php prob это похоже на html prob ..

Ваши ссылки должны быть относительными ссылками с предыдущим / т. Е.

<a href="/main.php"> Text </a>

вместо

<a href="main.php"> Text </a>
1 голос
/ 09 августа 2011

Вы можете просто жестко кодировать путь main.php в header.php:

<a href="http://website.com/main.php"><img src="http://website.com/images/mainlogo.png" /></a>
0 голосов
/ 09 августа 2011

Вы можете использовать base html tag:

<base href="http://yoursite.com/" />

Таким образом, вы можете использовать этот URL в качестве базы для всех ваших ссылок / таблиц стилей / изображений, и вам не нужнобеспокоиться, если они находятся в подкаталоге.

0 голосов
/ 09 августа 2011

лучшее, что нужно сделать, это привыкнуть к использованию

$_SERVER['DOCUMENT_ROOT']

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

, поэтому включение вашего заголовка, например, будет таким простым:

include $_SERVER['DOCUMENT_ROOT'] . "/header.php";
0 голосов
/ 09 августа 2011

как насчет использования абсолютных ссылок. header.php также должен ссылаться на main.php, тогда проблем не должно быть:

<?php include($_SERVER['DOCUMENT_ROOT'].'/header.php"); ?>
...