Ir para o conteúdo

* - - - - 1 votos

Função De Conversão De String Para Url Amigável


Criado por AAL Brasil Soluções, Fev 13 2012 18:45

2 respostas neste tópico
  • Por favor, faça o login para responder

#1 AAL Brasil Soluções

AAL Brasil Soluções
  • AAL Brasil Soluções
  • Colaborador
  • 1 Revisões
  • LocalizaçãoSão Paulo - SP

Revisou 13 fevereiro 2012 - 18:45

<?php //INÍCIO DE CONVERÇÃO DE STRING PARA URL AMIGÁVEL



 function urlSEO($string){

 $a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ"!@#$%&*()_-+={[}]/?;:.,\\\'<>';

 $b = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr                              ';

 $string = utf8_decode($string);

 $string = strtr($string, utf8_decode($a), $<img src='http://code.imasters.com.br/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' />;

 $string = strip_tags(trim($string));



/*Agora, remove qualquer espaço em branco duplicado*/

$string = preg_replace('/\s(?=\s)/', '', $string);



/*Ssubstitui qualquer espaço em branco (não-espaço), com um espaço*/

$string = preg_replace('/[\n\r\t]/', ' ', $string);



/*Remove qualquer espaço vazio*/

$string = str_replace(" ","-",$string);

return strtolower(utf8_encode($string));





}//FIM DE CONVERÇÃO DE STRING PARA URL AMIGÁVEL ?>





<?php 

//USANDO A FUNÇÃO



$minhaString = 'Conversão da minha string';



echo urlSEO($minhaString); /*IMPRIME =  conversao-da-minha-string */





?>

Esta revisão foi editado por Vinicius Ianni: 22 fevereiro 2012 - 17:12
Adicionar BBCode

Anselmo Lima - Consultor e Desenvolvedor

#2 DSB

DSB
  • DSB
  • Colaborador
  • 4 Revisões

Revisou 19 fevereiro 2012 - 12:24

Me permite uma sugestão?

Após retirados os acentos, vc pode substituir esse monte de replace por apenas 1:

$string = preg_replace( '/[^a-z0-9]+/i', '-', $string );


Dessa forma vc simplesmente substitui tudo o q não for letra ou número por '-'.

E se quiser garantir q não haja duplicidade de '-', basta por mais 1, caso necessário:

$string = preg_replace( '/-+/i', '-', $string );


Valew! ;)
-----------

Daniel Bispo
Twitter - @webmaster_cn

WebMaster - O Chuck Norris da Web!

#3 Carlos Coelho

Carlos Coelho
  • Carlos Coelho
  • Colaborador
  • 11 Revisões
  • LocalizaçãoGravataí - RS

Revisou 21 fevereiro 2012 - 18:36

Não precisa toda essa complicação!

Veja:

<?php

$string = 'Conversão da-------minha<h1> string</h1>';

echo strtolower( strip_tags( preg_replace( array( '/[`^~\'"]/', '/([\s]{1,})/', '/[-]{2,}/' ), array( null, '-', '-' ), iconv( 'UTF-8', 'ASCII//TRANSLIT', $string ) ) ) );



Saída:
conversao-da-minha-string

O conhecimento incompleto das potencialidades de uma linguagem de programação, pode conduzir a raciocínios (e conseqüentes projetos) relativamente limitados.




1 usuário(s) está(ão) lendo este código

1 membro(s), 0 visitante(s) e 0 membros anônimo(s)