Анализ файла .htaccess с помощью PHP

Я использую Zend Framework и использую .htaccess для некоторых настроек. I Сейчас я пишу сценарии командной строки для планирования (например, cron). Сценарии командной строки не смотрят файл .htaccess , потому что они не обслуживаются Apache. Я хотел бы проанализировать .htaccess с моим скриптом для получения некоторых настроек. Вот строки, которые меня особенно интересуют:

SetEnv APPLICATION_ENV development

php_value date.timezone America/New_York

Я заметил пакет PEAR File_HtAccess ,но, похоже, он касается только частей аутентификации файла .htaccess .


РЕШЕНИЕ: (с благодарностью из-за Bamieater )

echo операторов для вывод отладки, удален из рабочего кода.

$htaccess = file(realpath(dirname(__FILE__)) . '/.htaccess');
echo '
';
foreach ($htaccess as $line) {
    if (preg_match('/^\s*SetEnv\s+APPLICATION_ENV\s+(.*?)\s*$/', trim($line), $matches)) {
        defined('APPLICATION_ENV') || define('APPLICATION_ENV', $matches[1]);
        echo APPLICATION_ENV . PHP_EOL;
    } elseif (preg_match('/^\s*php_(?:admin_)?value\s+date\.timezone\s+(.*?)\s*$/', $line, $matches)) {
        date_default_timezone_set($matches[1]);
        echo date_default_timezone_get() . PHP_EOL;
    }
}
echo '
';

10
задан Community 23 May 2017 в 10:29
поделиться

1 ответ

Прочитайте файл .htaccess построчно и используйте регулярное выражение для доступа к данным.

Например, что-то вроде этого:

$line = "php_value date.timezone America/New_York";
$pattern = "@^php_value date.timezone (.*)$@";

if(preg_match($pattern,$line,$matches))
{
    print_r($matches);
}
6
ответ дан 4 December 2019 в 01:28
поделиться
Другие вопросы по тегам:

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