[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как грамотно инклудить два файла?
Владимир55
Для подключения файла со страницы, находящейся в корне, используется код
include("my-files/counter-stat-catalog.php");


Но в подключаемом файле также имеется инклуд, подключающий базу
include ("../my-admin/db-config.php") ;


Все нормально работает, а проблема возникает, если первый файл нужно подключить к странице, находящейся не в корне, а в какой-то другой директрии. В этом случае для подключения используется код, учитывающий глубину вложения. Например:
include("../my-files/counter-stat-catalog.php");


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

Есть ли какие-то универсальное решение, позволяющее инклудить файл counter-stat-catalog.php из любого каталога и чтобы не возникало проблем с подключением базы?
kaww
include dir(__FILE__) или include __DIR__

http://www.php.net/manual/ru/language.cons....predefined.php
Владимир55
Смысл этих функций я понял, но как это практически использовать в конкретном случае, как-то неясно...
chee
Владимир55
ну можете сделать mapping, объясню.
есть у вас файл например base.php, который нужно подключать на каждой странице или поместить в единую точку входа,
а в него поместить ассоциативны массив и функция require_module, примерно такого содержания, в ассоциативном массиве в значениях должны быть полные пути от корня сайта

define(ROOT_DIR, 'Путь до корня сайта');
function require_module($module)
{
$mapping = array(
'counter_stat_catalog' => '/my-files/counter-stat-catalog.php',
'db_config' => '/my-admin/db-config.php',
);


require_once ROOT_DIR . $mapping[$module];
}


использование будет выглядеть так, в любов файле, к примеру

require_once '../../base.php';

require_module('db_config');
require_module('counter_stat_catalog');


этот подход пременим для автозагрузки в процедурном стиле, в ООП подходе же используется автозагрузка по названию классов

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
Дополню немного.
Цитата (chee @ 9.06.2014 - 12:43)
define(ROOT_DIR, 'Путь до корня сайта');

Тут может быть даже путь на 1 (или более) ступень выше, чем файлы для веба. То есть, инклудить можно файлы, находящиеся выше корня сайта. Что может быть полезно в ряде случаев при полностью своих разработках (файлы недоступны напрямую из веба безо всяких программных ограничений). И что используется в некоторых фреймворках.


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.