сегодня я обнаружил проблему с доступом к языковому файлу из частей моего сайта. Моя структура здесь:
ROOT
|___ index.php
|___ langugages
|___ lang.cs.php
|___ lang.en.php
|___ php
|___ globals.php
|___ readDB.php
|___ writeDB.php
...
В globals.php я включаю
include './languages/lang.' . $lang . '.php';
Когда globals.php вызывается из index.php - include_once 'php/globals.php' ;, все в порядке, но у меня есть readDB.php, writeDB.php, который вызывает include_once 'globals.php'; и которые вызывается AJAX из index.php, и в этом случае он включает php/languages /lang.xx.php, который не существует. Есть ли у вас какие-либо идеи, как правильно писать путь к lang.xx.php, чтобы использовать его из корня и из любой другой папки?
Я думаю о чем-то вроде
if (./languages/lang.xx.php not exists) include ../languages/lang.xx.php;
Но правильно ли это?
Ответ:
set_include_path(implode(PATH_SEPARATOR, array(__DIR__, get_include_path())));
include_once __DIR__ . '/../languages/lang.' . $lang . '.php';
Теперь он работает с любой позиции в дереве сайтов.