Регулярные выражения никогда не были моей сильной стороной, и это поставило меня в тупик. В рамках проекта я хочу разработать класс ссылок SEO на PHP. Обработка mod_rewrite
через Apache для меня довольно проста, и это прекрасно работает.
Однако я хотел бы создать функцию, которая может генерировать ссылку SEO на основе динамического URL-адреса, который я передаю в качестве первого (и единственного) параметра функции.
Например, это будет вызов функции в PHP:
<a href="<?= SEO::CreateLink('blog/post.php?post=123&category=5') ?>" title="Blog Post Title">Blog Post Title</a>
Затем функция CreateLink
проанализирует переданную строку и выведет что-то вроде этого:
blog/blog-post-title
Заглушка URL сообщения в блоге уже хранится в базе данных. Я думаю, что лучший способ добиться этого — проанализировать переданную строку динамического URL-адреса и создать ассоциативный массив для анализа. Мой вопрос: каким будет регулярное выражение, чтобы взять URL-адрес и создать следующий ассоциативный массив в PHP?
link_pieces['page_type'] = 'blog/post';
link_pieces['post'] = 123;
link_pieces['category'] = 5;
Где page_type
— это базовый каталог и страница запроса без расширения, а остальные значения массива — это переменные запроса?