Вы хотите создавать слагов, но по опыту могу сказать, что возможности декодирования ограничены.Например, «Foo - Bar» станет «foo-bar», так как же вы можете узнать, что это не «foo bar» или «foo-bar» все это время?
Или как насчет символов, которые вам не нужны в вашем слаге, а также не имеют представления для символа "` "?Таким образом, вы можете использовать эфир 1: 1, например rawurlencode()
, или создать слаг, вот пример для функции - но, как я уже сказал, надежное декодирование невозможно - это просто по своей природе, поскольку вы должны выброситьИнформация.
function sanitizeStringForUrl($string){
$string = strtolower($string);
$string = html_entity_decode($string);
$string = str_replace(array('ä','ü','ö','ß'),array('ae','ue','oe','ss'),$string);
$string = preg_replace('#[^\w\säüöß]#',null,$string);
$string = preg_replace('#[\s]{2,}#',' ',$string);
$string = str_replace(array(' '),array('-'),$string);
return $string;
}