Intereting Posts
Сортировка по ключу в многомерном массиве с php CSS: установите размер шрифта таким образом, чтобы текст занимал весь контейнер свойство динамического класса $$ значение в php Невозможно использовать возвращаемое значение функции в контексте записи Клиент в DART-сообществе с сервером на PHP: управление доступом позволяет пропустить заголовки источника использовать более одного мета-ключа в запросе, используя posts_where в wordpress Facebook PHP API сообщение на стене подпадает под "Последние сообщения от других" Обработка большого количества данных с помощью MySQL и PHP XMLReader не может открывать большие (> 2gb) XML-файлы MySQL ложно разрешает дублировать записи, когда одно из полей – NULL Как выбрать данные из таблицы, в которой имя таблицы имеет пробелы? Как добавить 5 минут к текущему дате времени на php <5.3 Путь активов в файлах CSS в Symfony 2 Группирование родительских и дочерних категорий для публикации и отображения Как получить доступ к переменной защиты в классе Laravel

Создание строк «Безопасный URL»

Возможный дубликат:
URL Friendly Имя пользователя в PHP?

Есть ли способ сделать строки «безопасными для URL», что означает замену пробелов на дефисы, удаление любых знаков препинания и изменение всех прописных букв на нижний регистр?

Например:

"This is a STRING" -› "this-is-a-string" 

или

 "Hello World!" –› "hello-world" 

Вы можете использовать preg_replace для замены этих символов.

 $safe = preg_replace('/^-+|-+$/', '', strtolower(preg_replace('/[^a-zA-Z0-9]+/', '-', $string))); 

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

 function sanitize($string, $force_lowercase = true, $anal = false) { $strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]", "}", "\\", "|", ";", ":", "\"", "'", "&#8216;", "&#8217;", "&#8220;", "&#8221;", "&#8211;", "&#8212;", "—", "–", ",", "<", ".", ">", "/", "?"); $clean = trim(str_replace($strip, "", strip_tags($string))); $clean = preg_replace('/\s+/', "-", $clean); $clean = ($anal) ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean ; return ($force_lowercase) ? (function_exists('mb_strtolower')) ? mb_strtolower($clean, 'UTF-8') : strtolower($clean) : $clean; }