слаг – это часть URL-адреса, которая идентифицирует страницу с помощью
человеческого кода. читаемые ключевые слова.
Чтобы пользователям было проще вводить URL-адрес, специальные символы также часто
удаляются или заменяются. Например, символы с диакритическими знаками
обычно заменяются буквами английского алфавита; знаки препинания
обычно удаляются; а пробелы (которые должны быть закодированы как
%20 или +) заменяются тире (-) или подчеркиванием (_), что
более эстетично.
< /blockquote>
Я разработал веб-сайт для обмена фотографиями, на котором пользователи могут загружать, делиться и просматривать фотографии.
Все страницы генерируются автоматически, без моего контроля над заголовком. . Поскольку заголовок фотографии или имя пользователя могут содержать акцентированные символы или пробелы, мне нужна была функция для автоматического создания фрагментов и сохранения читаемых URL-адресов.
Я создал следующую функцию, которая заменяет символы с диакритическими знаками (âèêëçî), удаляет знаки препинания и недопустимые символы (#@&~^!) и преобразует пробелы в тире.
Код: Выделить всё
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;
}
Подробнее здесь: https://stackoverflow.com/questions/530 ... urls-slugs