Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
tenho esta função aqui:
function slug( $string ) {
if (is_string($string)) {
$string = strtolower(trim(utf8_decode($string)));
$before = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿRr';
$after = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
$string = strtr($string, utf8_decode($before), $after);
$replace = array(
'/[^a-z0-9.-]/' => '-',
'/-+/' => '-',
'/\-{2,}/' => ''
);
$string = preg_replace(array_keys($replace), array_values($replace), $string);
}
return $string;
}
ela esta funcionando belezinha, achei aqui no fórum mesmo, ela tira os acentos, e palavras compostas ela adiciona traços para separar, eu quero usá-la para criar slugs, o que falta que não consegui adaptar foi o seguinte...
tenho um campo de tags no meu formulário, e as tags são separadas por vírgula, e esta função, quando lê uma frase assim: frase composta, frase composta
retorna: frase-compostafrase-composta
e eu queria que fosse assim: frase-composta, frase-composta
deve ser algo bem pequeno, mas não manjo de RE's
deu certinho mestre, muito obrigado... isso porque foi na correria hein, kkk
deu certinho mestre, muito obrigado... isso porque foi na correria hein, kkk
Fiz uma aqui na corrida :upset:
Ficou bizarro, necessita de mais testes, mas deve funcionar. :rolleyes:
{echo
slug( 'frase composta, frase composta' ),
'<br/>',
slug( 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿRr' );
Saída
frase-composta, frase-composta
AAAAAAAECEEEEIIIIDNOOOOOOUUUUYThssaaaaaaaeceeeeiiiidnoooooouuuyythyRr