Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lote14

[Resolvido] função formata url

Recommended Posts

Fala pessoal estou precisando de uma ajudinha.

 

Tenho essa função em ASP 3.0 que formata um link com o título da página:

 

Tipo: www.site.com.br/o-titulo-da-pagina.html

 

Ela retira caracteres especias da string, subtitui palavras acentuadas,etc...

 

'formata titulo para url amigavel
Function FormataUrl(ByVal Texto)

       If (Mid(Texto,Len(Texto),1) = " ") Then
       Texto = Mid(Texto,1,Len(Texto)-1)
       End if

       FormataUrl = Replace(Replace(LCase(Texto), "  ", " "), "\'", "")
       FormataUrl = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(FormataUrl, " ", "-"), "á", "a"), "é", "e"), "í", "i"), "ó", "o"), "ú", "u"), "ã", "a"), "â", "a"), "à", "a"), "ê", "e"), "ô", "o"), "ç", "c"), "/", ""), "'", ""), """", ""), "[", ""), "]", ""), "&", "-"), "#", ""), "+", ""), "{", ""), "}", ""), "ù", "u"), "ò", "o"), ".", ""), "?", ""), "!", ""), ":", ""), "´", ""), "`", ""), "õ", "o"), "\", "")
       FormataUrl = Replace(Replace(Replace(FormataUrl, "û", "u"), "¢", "c"), "¡", "i")
       FormataUrl = Replace(Replace(Replace(FormataUrl, "£", "e"), "¤", ""), "¥", "y")
       FormataUrl = Replace(Replace(Replace(FormataUrl, "¦", ""), "ª", "a"), "æ", "ae")
       FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ë", "e"), "ì", "ì"), "ð", "o"), "Ä", "a")
       FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "ñ", "n"), "ø", "o"), "ý", "y"), "  ", " ")
       FormataUrl = Replace(Replace(Replace(Replace(FormataUrl, "þ", "p"), "€", "e"), "ÿ", "y"), "²", "z")
       FormataUrl = Replace(FormataUrl, "%", "")
       FormataUrl = Replace(FormataUrl, "---", "-")

End Function

 

Tenho ela em um site feito em ASP e uso o filtro IsapiRewrite...

 

Estou com um sistema em PHP e gostaria de fazer o mesmo, para isso preciso de uma função parecida com esta.

 

Alguém tem alguma dica ou um link onde possa encontrar.

 

Tentei transformar esta função ASP em PHP mas não tive êxito, me compliquei com algumas funções...replace=str_replace,Len=strlen...não consegui.

 

Algúem poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
class SEO_URL{
static function Filter( $str )
{
	return str_replace( 
			 array( ' ', ' ', '/', '~', 'á', 'é', 'í', 'ó', 'ú', 'â', 'ê', 'î', 'ô', 'û', 'à', 'è', 'ì', 'ò', 'ù', 'ã', 'õ', 'ç', 'ñ', 'Á', 'É', 'Í', 'Ó', 'Ú', 'Â', 'Ê', 'Î', 'Ô', 'Û', 'À', 'È', 'Ì', 'Ò', 'Ù', 'Ã', 'Õ', 'Ç', 'Ñ' ) // original
			,array( '_', '_', '-', '_', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'a', 'o', 'c', 'n', 'A', 'E', 'I', 'O', 'U', 'A', 'E', 'I', 'O', 'U', 'A', 'E', 'I', 'O', 'U', 'A', 'O', 'C', 'N' )  // substituto
			,$str );
}
static function Strip( $str )
   {
	return self::Filter( trim( substr( $str, 0, 140 ) ) );
   }
}

echo SEO_URL::Strip( 'aqui o texto' );
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas um complemento,

 

Esse trecho:

return self::Filter( trim( substr( $str, 0, 140 ) ) );

No ASP seria a função mid() http://msdn.microsoft.com/en-us/library/wffts6k3

 

O valor 140, representa o limite máximo de caracteres.

 

É útil para evitar extrapolar o limite da URL, que é de 255 caracteres.

 

De modo geral, deixo configurado em 120 ~ 140. No entanto, você deve definir de acordo com as suas necessidades.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou até comentar esta classe para não esquecer.

//O valor 140, representa o limite máximo de caracteres.

 

valeu camarada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.