Ir para conteúdo

POWERED BY:

Arquivado

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

micox

Função limpa texto pra virar URL

Recommended Posts

Função que gera uma texto limpo pra virar URL:

 

Fonte: Função Limpa texto pra virar URL (urls amigáveis).

 

Muito útil quando trabalhamos com url amigáveis (friendly url):

 

- limpa acentos e transforma em letra normal

- limpa cedilha e transforma em c normal, o mesmo com o ñ

- transforma espaços em underline (_)

- tira caracteres invalidos

 

Por exemplo, temos o texto

"O cabeçudo & a máfia é ônti. O cabeçudo & a máfia é ônti.htm"

 

Que queremos que vire a url

"o-cabecudo-a-mafia-e-onti-o-cabecudo-a-mafia-e-onti.htm"

 

1) Pegue esta minha função

function geraUrlLimpa($texto){	/* função que gera uma texto limpo pra virar URL:	   - limpa acentos e transforma em letra normal	   - limpa cedilha e transforma em c normal, o mesmo com o ñ	   - transforma espaços em hifen (-)	   - tira caracteres invalidos	  by Micox - elmicox.blogspot.com	*/	//desconvertendo do padrão entitie (tipo á para á)	$texto = html_entity_decode($texto);	//tirando os acentos	$texto = eregi_replace('[aáàãâä]','a',$texto);	$texto = eregi_replace('[eéèêë]','e',$texto);	$texto = eregi_replace('[iíìîï]','i',$texto);	$texto = eregi_replace('[oóòõôö]','o',$texto);	$texto = eregi_replace('[uúùûü]','u',$texto);	//parte que tira o cedilha e o ñ	$texto = eregi_replace('[ç]','c',$texto);	$texto = eregi_replace('[ñ]','n',$texto);	//trocando espaço em branco por underline	$texto = eregi_replace('( )','-',$texto);	//tirando outros caracteres invalidos	$texto = eregi_replace('[^a-z0-9\-]','',$texto);	//trocando duplo espaço (hifen) por 1 hifen só	$texto = eregi_replace('--','-',$texto);		return strtolower($texto);}
2) Chame a função

$tes = "O cabeçudo & a máfia é ônti. O cabeçudo & a máfia é ônti";  $tes = geraUrlLimpa($tes)."htm";  echo $tes."<br />";  //irá gerar o-cabecudo-a-mafia-e-onti-o-cabecudo-a-mafia-e-onti.htm
Dúvidas, pergunte ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal!!no coments...^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

caro colega não entendi como montar

 

veja meu .htacess e o site para ver que acontence com ç www.playjogos.com.br

 

 

 

RewriteEngine On

#turn on the Rewrite engine, if it's not already active

 

#set the base directory to /

RewriteBase /

 

# now the rewriting rules

RewriteRule ^games/ games.php [L]

 

# now the rewriting rules

RewriteRule ^game/ game.php [L]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, minha função não faz o serviço que o htaccess faz, ela apenas te ajuda a montar como será o link.

 

Exemplificando fica melhor entender.

 

Digamos que eu tenho uma notícia cujo ID é 432 e título é 'Fumo destrói o pulmão'.

 

Sem url amigáveis, um tipo de link provável poderia ser:

www.seu_servidor.com/noticia.php?id=432

 

COM url amigáveis você pode melhorar isto aí para

www.seu_servidor.com/noticia/432/titulo-da-noticia

 

sendo que 'titulo-da-noticia', muitas vezes pode ter acentos, cedilhas, etc.

Minha função apenas limpa este título pra que ele não tenha ests acentos ou cedilhas.

 

espero que tenha entendido http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você irá colocar na hora em que for montar algum link pra apontar para a página tal.

Na hora da montagem do link você usa isso aí.

 

tipo:

 

$id_noticia = getIdNoticiaFromBD();
$titulo = getTituloFromBD($id_noticia);
echo "<a href='http://www.servidor.com/noticia/$id_noticia/".geraUrlLimpa($titulo)."'>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehe, aí é você quem faz ela meu cumpadi. hehe.

O que eu mostrei aí foi só um exemplo pra você entender :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh..olha so oq da AS VEZES em minha pagina, nao eh direto:

 

Warning: mb_eregi_replace() [function.mb-eregi-replace]: mbregex compile err: premature end of char-class in /home/xxx/public_html/libs/texto_limpo.php on line 21

 

pq isso? ai dou f5 e volta ao normal...dps de um tempinho volta a aparecer

 

=/

 

a funcao eh

function texto_limpo($texto) {
	//desconvertendo do padrão entitie (tipo á para á)
	$texto = html_entity_decode($texto);
	//tirando os acentos
	$texto = eregi_replace('[aáàãâ]','a',$texto);
	$texto = eregi_replace('[eéèê]','e',$texto);
	$texto = eregi_replace('[iíìî]','i',$texto);
	$texto = eregi_replace('[oóòõô]','o',$texto);
	$texto = eregi_replace('[Úuúùû]','u',$texto);
	//parte que tira o cedilha e o ñ
	$texto = eregi_replace('[ç]','c',$texto);
	$texto = eregi_replace('[ñ]','n',$texto);
	//trocando espaço em branco por underline
	$texto = eregi_replace('( )','-',$texto);
	//tirando outros caracteres invalidos
	$texto = eregi_replace('[^a-z0-9\-]','',$texto);
	//trocando duplo espaço (hifen) por 1 hifen só
	$texto = eregi_replace('--','-',$texto);
	
	//$texto = str_replace("-", "_", $texto);

	return strtolower($texto);
}

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.