Nano Hash - криптовалюты, майнинг, программирование

Как разбить URL-адрес на его составные части в PHP?

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

02.06.2011

Ответы:


1

Вы можете просто использовать parse_url и parse_str, регулярные выражения не нужны.

02.06.2011

2

Используйте parse_url, чтобы разбить URL-адрес на части:

Эта функция анализирует URL-адрес и возвращает ассоциативный массив, содержащий любой из различных компонентов URL-адреса, которые присутствуют.

Затем используйте parse_str, чтобы разбить часть строки запроса URL-адреса.

02.06.2011
  • Спасибо, мальчик, я чувствую себя глупо сейчас. Я никогда не сталкивался с этими функциями ...! 02.06.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..