Как применить правила нормализации URL в PHP?

Есть ли существовавшая ранее функция или класс для нормализации URL в PHP?

В частности, следуя правилам нормализации семантического сохранения, изложенным в этой статье Википедии о нормализации URL (или что-то вроде «стандартного», я должен следовать).

  • Преобразование схемы и размещение в нижнем регистре
  • Заглавные буквы в escape-последовательностях
  • Добавление трейлинга / (в каталоги, а не файлы)
  • Удаление порта по умолчанию
  • Удаление точечных сегментов

Прямо сейчас, я думаю, что я просто использую parse_url() и применяю правила отдельно, но я бы предпочел не изобретать колесо.

Библиотека Pear Net_URL2 выглядит так, как будто она сделает хотя бы часть того, что вы хотите. Это позволит удалить сегменты точек, исправить капитализацию и избавиться от порта по умолчанию:

 include("Net/URL2.php"); $url = new Net_URL2('HTTP://example.com:80/a/../b/c'); print $url->getNormalizedURL(); в include("Net/URL2.php"); $url = new Net_URL2('HTTP://example.com:80/a/../b/c'); print $url->getNormalizedURL(); 

выделяет:

 http://example.com/b/c 

Я сомневаюсь, что существует механизм общего назначения для добавления косых черт к каталогам, потому что вам нужен способ сопоставления URL-адресов с каталогами, которые сложнее делать в общем виде. Но это близко.

Рекомендации: