Регулярные выражения никогда не были одной из моих сильных сторон, и это ставит меня в тупик. В рамках проекта я хочу разработать класс ссылок 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
- это базовый каталог и страница запроса без расширения, а другие значения массива - это переменные запроса?