У меня есть апач моего сервера настроены для перенаправления каждого запроса в index.php, так что я могу использовать URLs как:PHP и Apache - синтаксический mod_rewrite URL
http://www.website.com/about/us
Теперь мне нужно разобрать URL, чтобы определить, существует ли каждый маршрут и что ожидать от него, поэтому я могу настроить таблицу базы данных для сохранения маршрутов, и поэтому мои клиенты могут редактировать свои маршруты по своему усмотрению. Дело в том, что я пока не могу разобрать парсинг.
Вот мой код:
$uri = 'about/us';
$regex = '(page(/<action>))';
if (! preg_match($regex, $uri, $matches)) {
echo 'the route doesn\'t match';
exit();
}
Он всегда появляется, что эхо-сообщения. Что я делаю не так?
редактировать:
Причина, почему мне нужно регулярное выражение выглядит следующим образом. Представьте себе, у меня есть сегмент URL-адрес, как:
/user/yoda
Регулярное выражение здесь будет полезно разобрать первый аргумент в качестве действия или страницы, а второй как ключ, который позволит только определенный набор символов, например, если Я хочу ожидать, что в этом случае второй параграф только соответствует «_-azAZ09», что-то вроде этого. Другими словами, набор выражений регулярных выражений будет меня по сравнению с ури, чтобы определить, соответствует ли кто-либо из них uri, и определить действие, которое нужно предпринять из этого. Использование функции «Взрыв» заставит меня оценить сегменты uri позже в коде, который я бы хотел избежать. Если совпадение с uri несовместимо, немедленно переместите страницу на 404 и выполните операцию. Не знаю, ясно ли я.
Это будет работать, если ситуация всегда будет легкой, но это не так. Поэтому мне действительно нужно использовать регулярные выражения. – yoda
Помогите объяснить почему? URL всегда будет иметь ''/''s, и это кажется подходящим решением. Я не понимаю, почему необходимы регулярные выражения для ручного разделения URL-адреса. Может быть, вопрос отсутствует? – LiraNuna
+1 regex стоит дорого! – sepehr