2013-03-14 3 views
0

Я изучаю php, но я против стены прямо сейчас, ссылаясь на проблему. Я много искал, но я не могу найти никаких сообщений с моей точной структурной проблемой. Надеясь освоить этот барьер, так что я могу двигаться к следующему ...Неработающие ссылки, полученные из php, включают ссылки

Моя основная структура файла что-то вроде:

domain.com/ 
     home.php 
     images/ 
       global/ 
         nav/ 
          nav-img.jpg 
     includes/ 
       menu.php 
     fruit/ 
       apples/ 
         red/ 
          gala/ 
           gala.php 

Я хочу, чтобы создать глобальный путь создания моего веб-корневой каталог, который я могу ссылаться на летать на каждой странице, где бы она ни находилась. НО другие сообщения по этой общей теме дают [10] различные функции, которые я могу использовать. Я просто хочу [1]. Кроме того, я не знаю, куда положить [например] define (ROOT) или как вызвать его с отдельной страницы.

Определит (ROOT) работу для моей ситуации?


Зная, что все страницы используют [menu.php], мое препятствие:

От гала/gala.php - когда я нажимаю на [дома], он ищет:

/fruit/apples/red/gala/home.php [does not exist, of course!] 

Кроме того, пытаясь ИЗБЕЖАТЬ эти [2] вещи, если это возможно:

I. Использование ссылок HTML-файла в gala.php так: ../../../../includes/menu.php

, чтобы найти правильный глобальный включить.

II. И избежать использования ссылок ссылку в menu.php как это: /images/global/nav/nav-img.jpg

Любая обратная связь будет оценена [+] или [-]. Большое спасибо.

+0

PROCEDURAL ИЛИ OOP путь PHP Я думаю, что избегать этих двух вещей одновременно невозможно. поскольку его все еще необходимо объявить значение целевого местоположения. –

+0

действительно,? Я думал, что для этого нужен корень? Таким образом, вы можете сделать более легкую/упрощенную и переносимую ссылку на файл, например 'define ('ROOT', 'some/path')', а затем вызывать файл с чем-то вроде include() или require() 'require ('ROOT .filename ') '. Я здесь совершенно не прав? Я, очевидно, что-то пропустил ... – conceive

+0

также, я не женат на этом. Просто было предпочтение ... – conceive

ответ

0

Хорошо, вот что я сделал, что, казалось, самое лучшее:

Для I. и II., чтобы избежать использования так много ../../../../ во все ЦСИ = «» и HREF = «» Я только заселенных и используемых ссылок на файлы сайта-родственнице с ведущими слэшами , например, «/includes/menu.php», который приведет меня к корню сайта, создав там местоположение файла.

Для глобальной ссылкифайла, оба эти работали:

<?php 
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/"; 
?> 
// in `<head>` section 

и используя <?php include ('menu.php'); ?>

ИЛИ ЭТО ОДИН РАБОТАЛ TOO:

<?php 
define('ROOT',$_SERVER['DOCUMENT_ROOT']); 
define('INCLUDES',ROOT.'/includes/'); 
?> 
// in `<head>` section 

и используя <?php include (INCLUDES.'menu.php'); ?> в файле на другом уровне.

Смежные вопросы