Приветствую. Что то не сообразить, как проще всего определить, что текущий открываемый файл имеет расширение php или html? Нужно фильтровать при записи в бд, а то всякая шелуха попадает типа css, js и тд.
Изобретен велосипед - простецкая статистика просмотра страниц. Так вот суть в том, что при обращении к закрытому от посторонних файлу, перебрасывает на 404, но url в реквесте остается и запись происходит по url обращения. То есть, если напрямую открыли "http://blabla.com/icons/favicon.ico" и перебросило на 404, то в базу с помощью "$_SERVER['REQUEST_URI'];" запишется адрес "http://blabla.com/icons/favicon.ico" Плюс еще всякие школо-хацкеры пытаются найти админку, путем открытия вариации путей со словом admin. Это очень загаживает таблицу в бд. Вот хотелось бы отсечь всю эту гадость и записывать только если файл к которому обращаются имеет расширение php или html. Хотелось бы какую то конструкцию из if. Как в htaccess например if .... ^(.*).(html|php)$ { ..... } Не знаю как это правильно записать. Гугл на мысли не наводит.
if (preg_match("/(.+?).(html|php)/", $_SERVER['REQUEST_URI'])) { echo "php and html"; } esle { echo "no php and html"; } проверка на занесения в базу
Ну во-первых, ощущение такое, что статистика собирается гораздо раньше, чем достигается результат запроса Варианты: Регуляркой проверять $_SERVER['REQUEST_URI'], перед записью, но отпадут пути заканчивающиеся на / или без расширения. Так, что правильно двигаться в сторону переноса записи о посещении в контроллер, когда уже точно известно , что результат быть обязан, либо в конец перед выхлопом ответа.