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

Foi útil?

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)), '-')

Veja como Drupal faz .

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top