Из Википедии :
slug является частью URL-адреса который идентифицирует страницу с помощью Слаг - это часть URL-адреса, которая идентифицирует страницу с помощью удобочитаемых ключевых слов. Чтобы пользователям было проще вводить URL-адрес, часто используются специальные символы ...
Определение
Из Википедии :
slug является частью URL-адреса который идентифицирует страницу с помощью Слаг - это часть URL-адреса, которая идентифицирует страницу с помощью удобочитаемых ключевых слов. Чтобы пользователям было проще вводить URL-адрес, часто используются специальные символы ...
Определение
Из Википедии :
slug является частью URL-адреса который идентифицирует страницу с помощью удобочитаемые ключевые слова.
Чтобы пользователям было проще вводить URL-адреса, часто используются специальные символы удалены или заменены. Например, акцентированные символы обычно заменяются буквами английского алфавита; пунктуация следы обычно удаляются; и пробелы (которые должны быть закодированы как % 20 или +) заменяются дефисом (-) или подчеркиванием (_), которые более эстетично.
Контекст
Я разработал веб-сайт для обмена фотографиями, на котором пользователи могут загружать, публиковать и просматривать фотографии.
Все страницы создаются автоматически, я не нажимаю на заголовок. Поскольку заголовок фотографии или имя пользователя могут содержать символы с диакритическими знаками или пробелы, мне нужна была функция для автоматического создания ярлыков и сохранения читабельных URL.
Я создал следующую функцию, которая заменяет символы с диакритическими знаками (âèêëçî), удаляет знаки препинания и плохие символы (# @ & ~ ^!) и преобразует пробелы в тире.
Вопросы
- Что вы думаете об этой функции?
- Знаете ли вы какие-либо другие функции для создания ярлыков?
Код
php :
function sluggable($str) { $before = array( 'àáâãäåòóôõöøèéêëðçìíîïùúûüñšž', '/[^a-z0-9\s]/', array('/\s/', '/--+/', '/---+/') ); $after = array( 'aaaaaaooooooeeeeeciiiiuuuunsz', '', '-' ); $str = strtolower($str); $str = strtr($str, $before[0], $after[0]); $str = preg_replace($before[1], $after[1], $str); $str = trim($str); $str = preg_replace($before[2], $after[2], $str); return $str; }