В настоящее время я изменяю небольшое веб-приложение. Это веб-приложение позволяет пользователям вводить / указывать категорию самостоятельно. Я заметил, что в базе данных есть много категорий, которые содержат пробелы и специальные символы, например, Cakes & cupcakes.
В интерфейсе база данных показывает все пользовательские категории в виде ссылок на URL, и пользователь может щелкнуть по ним, чтобы узнать, что находится в этой категории.
Ссылки для интерфейсных категорий кодируются с использованием функции rawurlencode, и это выглядит примерно так.
./show.php?category=<?php echo rawurlencode($e['category']); ?>
И в фоновом режиме функция будет GET
URL-адрес, а затем декодировать его до того, как он будет отправлен в базу данных для запроса.
$category = rawurldecode(htmlspecialchars_decode($category));
Он отлично работает, но кажется несколько «последней минутой» и «бесхитростным».
Как таковой, мне интересно, какова наилучшая практика в PHP для специальных символов и пробелов 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».