Como faço para higienizar URIs título com PHP?
-
07-07-2019 - |
Pergunta
Eu estou programando um blog e eu quero que os URIs a ser o título como o título da pergunta aqui no stackoverflow ou como wordpress.
Quais são as regras para higienização um URI?
Existe um código já feito em PHP que faz isso?
Agradecemos antecipadamente,
Omer
Solução
Muitos CMS de ter implementado algo assim, o de Wordpress foi postado em outra pergunta . Você pode estar interessado no pergunta sobre esta técnica em geral, também.
Outras dicas
Este pode ser o caminho mais curto para substituir qualquer caractere não alfanumérico com um único hífen:
trim(preg_replace('/[^a-z0-9-]+/', '-', strtolower($str)), '-')
Em caso de site vai para baixo:
<?php
function pathauto_cleanstring($string)
{
$url = $string;
$url = preg_replace('~[^\\pL0-9_]+~u', '-', $url); // substitutes anything but letters, numbers and '_' with separator
$url = trim($url, "-");
$url = iconv("utf-8", "us-ascii//TRANSLIT", $url); // TRANSLIT does the whole job
$url = strtolower($url);
$url = preg_replace('~[^-a-z0-9_]+~', '', $url); // keep only letters, numbers, '_' and separator
return $url;
}
Geralmente você vai querer o seu URL para ter apenas 0-9 e a-z, e certifique-se de que tudo está minúsculas. Substituir espaços com traços (-)., E tira o resto do jargão
SO muito bonito tem figurado para fora.