Рекомендации по URL-адресам с пробелом и специальными символами

В настоящее время я изменяю небольшое веб-приложение. Это веб-приложение позволяет пользователям вводить / указывать категорию самостоятельно. Я заметил, что в базе данных есть много категорий, которые содержат пробелы и специальные символы, например, Cakes & cupcakes.

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

Ссылки для интерфейсных категорий кодируются с использованием функции rawurlencode, и это выглядит примерно так.

./show.php?category=<?php echo rawurlencode($e['category']); ?> 

И в фоновом режиме функция будет GET URL-адрес, а затем декодировать его до того, как он будет отправлен в базу данных для запроса.

 $category = rawurldecode(htmlspecialchars_decode($category)); 

Он отлично работает, но кажется несколько «последней минутой» и «бесхитростным».

Как таковой, мне интересно, какова наилучшая практика в PHP для специальных символов и пробелов URL?

Заранее спасибо.

Solutions Collecting From Web of "Рекомендации по URL-адресам с пробелом и специальными символами"

Я предпочитаю использовать метод «slug». Вы можете «пролить» строки и использовать пул в URL-адресе.

http://sourcecookbook.com/en/recipes/8/function-to-slugify-strings-in-php

Вам нужно будет добавить столбец в базу данных для slug, но тогда вы можете легко представить поля ввода пользователя в URL и сделать их доступными для чтения. «function-to-slugify-strings-in-php» – это пуля, которая, вероятно, первоначально выглядела как «Функция для slugify строк в PHP».