Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Ламерские вопросы » На что влияет число "-12" в Ajax файлах движка и мудулях

На что влияет число "-12" в Ajax файлах движка и мудулях


     15.03.2014    Все вопросы » Ламерские вопросы    2217

вопрос
Все родные php файлы в engine/ajax имеют такую строку:
define( 'ROOT_DIR', substr( dirname(  __FILE__ ), 0, -12 ) );

Но вот например в модуле Fast-PM by Sander все файлы с -16, а не с -12:
define( 'ROOT_DIR', substr( dirname(  __FILE__ ), 0, -16 ) );

В модуле iLike v2.0 вообще -26
define( 'ROOT_DIR', substr( dirname(  __FILE__ ), 0, -26 ) );

Почему эта цифра прыгает, на что она влияет?

Ответил: D0Gmatist


представим в простом и понятном виде
dirname( __FILE__ ) это корневая папка сайта
пример массива dirname( __FILE__ ) = http_home\engine\ajax
define это функция которая позволяет вырезать определённую часть из массива в данном случае это
вырезать из http_home\engine\ajax последних 12 символов .. то есть \engine\ajax
и вернуть в ROOT_DIR имя корневой папки http_home

4 комментария

D0Gmatist
Юзер

D0Gmatist - 15 марта 2014 00:25 -

точнее не массив а переменная

поправка dirname( __FILE__ ) это корневая папка не сайта а файла в ка тором находится файл в котором сделан этот запрос

Gopr
Юзер

Gopr - 15 марта 2014 00:30 -

Если правильно понял \engine\ajax = 12 символов, получается -12 это оптимальное именно для тех файлов которые лежат в \engine\ajax. А если есть файлы которые лежат в \engine\ajax\папка, то в php нужно уже писать -18, где 18=12+6, а 6 = \папка

D0Gmatist
Юзер

D0Gmatist - 15 марта 2014 00:33 -

Да вы правильно поняли

D0Gmatist
Юзер

D0Gmatist - 15 марта 2014 00:32 -

а ну и на что это влияет
к примеру нам нужно подключить файлы
require_once ENGINE_DIR . '/classes/mysql.php';
require_once ENGINE_DIR . '/data/dbconfig.php';
require_once ENGINE_DIR . '/modules/functions.php';

как нам определить корневую папку директории сайта ENGINE_DIR

вот по этому берётся путь до папки с файлом вырезается все (папки от корня сайта до файла посимвольно) и после
define( 'ENGINE_DIR', ROOT_DIR . '/engine' );
готов корневой системы ENGINE_DIR

поправка .. не то скопипастил
вырезает substr Возвращает подстроку
http://www.php.su/substr
а define определяет именованную константу
http://www.php.su/define

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх