Есть две папки:
/var/www/developer/main/about/index.php
/var/www/production/main/about/index.php
Оба файла идентичны и дублируют друг-друга. Мне нужно, чтобы index.php в папке /about/ распознавал, лежит ли он в папке /developer/, или же в папке /production/. Также, работоспособность скрипта должна сохраняться на любом уровне вложенности. Если я, например, захочу переместить скрипт в папку /var/www/developer/main/about/more/index.php. Итогом работы скрипта должна быть строка 'developer' или 'production'. Как это можно сделать и при помощи каких функций?
Можно создать простую функцию которая будет смотреть текущую директорию файла и через регулярку забрать нужное вам значение:
function environment()
{
preg_match('/www\/(\w+)/', __DIR__, $matches);
if (empty($matches[1])) {
throw new \Exception('Что-то пошло не так');
}
return $matches[1];
}
var_dump(environment());
На выходе будет то что вы и просили.
С помощью __DIR__ узнаем путь файла, а с помощью strpos
определяем есть ли в пути например developer и делаем в зависимости от этого то, что задумали.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей