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

Сервис обмена электронных валют

Партнерская программа Kredov

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

#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. Подключение файла с помощью include
  2. Как правильно составить CSS файл.
  3. Правильные права на запись для файлов

#2 sakhseo

sakhseo
  • Пользователь
  • 13 сообщений
  • Репутация: 1

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

echo dirname(__FILE__ );

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

  • 0

#3 Avalon

Avalon
    Topic Starter
  • Пользователь
  • 9 сообщений
  • Репутация: 0

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

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


  • 0

#4 sakhseo

sakhseo
  • Пользователь
  • 13 сообщений
  • Репутация: 1

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

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

 


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

  • 0

#5 Avalon

Avalon
    Topic Starter
  • Пользователь
  • 9 сообщений
  • Репутация: 0

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

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


  • 0

#6 Rexxar

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

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

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

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


  • 0


#7 Avalon

Avalon
    Topic Starter
  • Пользователь
  • 9 сообщений
  • Репутация: 0

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

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

 

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


  • 0

#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 Avalon

Avalon
    Topic Starter
  • Пользователь
  • 9 сообщений
  • Репутация: 0

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

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


  • 0

#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