2011-08-08 3 views
0

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

<?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, а также таблицы стилей ни один из которых находятся в * subpage.php «s каталог , тем самым вызывая ошибку, когда кто-то из Subpage пытается вернуться к Main через ссылку в заголовке.

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

ответ

0

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

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

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

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

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

0

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

$_SERVER['DOCUMENT_ROOT'] 

что путь у вас нет путаницы в какой директории вы находитесь, и т.д.

так включая ваш заголовок для примером может быть столь же просто, как:

include $_SERVER['DOCUMENT_ROOT'] . "/header.php"; 
1

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

<a href="http://website.com/main.php"><img src="http://website.com/images/mainlogo.png" /></a> 
1

В отличие от PHP вероятн это, как представляется, HTML Prob ..

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

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

вместо

<a href="main.php"> Text </a> 
Смежные вопросы