Перейти к содержимому



Как правильно include файлы?

#1

Поделиться сообщением #1



Avalon

Avalon
  • Неактивные
  • 9 сообщений
  • Репутация: 0
0

Отправлено 17 Март 2015 - 15:08

Для подключения файла со страницы, находящейся в корне, используется код

 
include("files/catalog.php");

Но в подключаемом файле также имеется инклуд, подключающий другой файл

 
include ("../admin/config.php");

Все нормально работает, а проблема возникает, если первый файл нужно подключить к странице, находящейся не в корне, а в какой-то другой директрии. В этом случае для подключения используется код, учитывающий глубину вложения. Например:
 

include("../files/catalog.php");

Однако, со вторым файлом возникает ошибка адреса подключения базы.

Есть ли какие-то универсальное решение, позволяющее инклудить файл catalog.php из любого каталога и чтобы не возникало проблем с подключением базы?


 

 

Сообщение отредактировал Avalon: 17 Март 2015 - 15:08

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Разметка cтраницы с помощью PHP
  2. Подключение внешнего JS-файла, сгенерированного с помощью PHP
  3. Подключение файла с помощью include
  4. Полное руководство по созданию полноценного блога
  5. Как правильно составить CSS файл.

#2

Поделиться сообщением #2



sakhseo

sakhseo
  • Неактивные
  • 13 сообщений
  • Репутация: 1

Отправлено 17 Март 2015 - 15:49

echo dirname(__FILE__ );

Сообщение отредактировал sakhseo: 17 Март 2015 - 15:51

  • 0

#3

Поделиться сообщением #3



Avalon

Avalon
    Topic Starter
  • Неактивные
  • 9 сообщений
  • Репутация: 0

Отправлено 17 Март 2015 - 15:55

Sakhseo, можно по подробней? пока только учусь


  • 0

#4

Поделиться сообщением #4



sakhseo

sakhseo
  • Неактивные
  • 13 сообщений
  • Репутация: 1

Отправлено 17 Март 2015 - 16:15

dirnameВозвращает имя родительского каталога из указанного пути
__FILE__Полный путь и имя текущего файла. Если используется внутри подключаемого файла, то возвращается имя данного файла.
echo dirname(__FILE__ ); // полный путь к файлу. Не относительный.
Сорри)) Я спать)) У нас уже почти полночь))

 


Сообщение отредактировал sakhseo: 17 Март 2015 - 16:16

  • 0

#5

Поделиться сообщением #5



Avalon

Avalon
    Topic Starter
  • Неактивные
  • 9 сообщений
  • Репутация: 0

Отправлено 17 Март 2015 - 16:23

Извините, все-равно не понял. Так а как это совместить с include?


  • 0

#6

Поделиться сообщением #6



Rexxar

Rexxar
  • Пользователь
  • 596 сообщений
  • Репутация: 36

Отправлено 17 Март 2015 - 17:10

echo используется для вывода, типа принта, а в данном случае это зачем? 

ТС, можно просто использовать абсолютные ссылки, или же создать переменную в которой будет носитель корневого каталога. 


  • 0


#7

Поделиться сообщением #7



Avalon

Avalon
    Topic Starter
  • Неактивные
  • 9 сообщений
  • Репутация: 0

Отправлено 17 Март 2015 - 17:20

или же создать переменную в которой будет носитель корневого каталога.

 

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


  • 0

#8

Поделиться сообщением #8



sakhseo

sakhseo
  • Неактивные
  • 13 сообщений
  • Репутация: 1

Отправлено 17 Март 2015 - 17:21

echo используется для вывода, типа принта, а в данном случае это зачем? 

А что бы глазами увидел. 

// Определяем именованную константу. Доступна везде.
define('MAIN_DIR', dirname(__FILE__ ));
require_once MAIN_DIR.'/init.php';

// или объявляем переменную.
$aaa = dirname(__FILE__ );
require_once $aaa.'/init.php';

В самом первом файле объяви MAIN_DIR и потом подключай относительно её.


Сообщение отредактировал sakhseo: 17 Март 2015 - 17:33

  • 0

#9

Поделиться сообщением #9



Avalon

Avalon
    Topic Starter
  • Неактивные
  • 9 сообщений
  • Репутация: 0

Отправлено 17 Март 2015 - 17:37

Вместо __FILE__ я должен указать путь к файлу? http://site.ru/files/catalog.php ? Верно?


  • 0

#10

Поделиться сообщением #10



sakhseo

sakhseo
  • Неактивные
  • 13 сообщений
  • Репутация: 1

Отправлено 17 Март 2015 - 17:43

define('MAIN_DIR', dirname(__FILE__ ));
include(MAIN_DIR.'/files/catalog.php');

И дальше использовать MAIN_DIR. Конечно же можно и относительные продолжать использовать по необходимости.


  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru