Posted By

iTony on 09/25/08


Tagged


Versions (?)

Who likes this?

2 people have marked this snippet as a favorite

luman
davidsword


crear slugs para titulos


 / Published in: PHP
 

los slugs son buenos para hacer urls mas entendibles y tambien almazenar propiamente titulos en base de datos

  1. function caracteres_latinos($cadena){
  2. //acentos
  3. $cadena = ereg_replace("(À|Á|Â|Ã|Ä|Å|à|á|â|ã|ä|å)","a",$cadena);
  4. $cadena = ereg_replace("(È|É|Ê|Ë|è|é|ê|ë)","e",$cadena);
  5. $cadena = ereg_replace("(Ì|Í|Î|Ï|ì|í|î|ï)","i",$cadena);
  6. $cadena = ereg_replace("(Ò|Ó|Ô|Õ|Ö|Ø|ò|ó|ô|õ|ö|ø)","o",$cadena);
  7. $cadena = ereg_replace("(Ù|Ú|Û|Ü|ù|ú|û|ü)","u",$cadena);
  8.  
  9. //la ñ
  10. $cadena = ereg_replace("(Ñ|ñ)","n",$cadena);
  11.  
  12. //caracteres extraños
  13. $cadena = ereg_replace("(Ç|ç)","c",$cadena);
  14. $cadena = ereg_replace("ÿ","y",$cadena);
  15.  
  16. return $cadena;
  17. }
  18.  
  19. function generar_slug($cadena, $separador = '-'){
  20. //sin espacios al inicio o al final
  21. $cadena = trim($cadena);
  22.  
  23. //limpiamos caracteres los latinos
  24. $cadena = caracteres_latinos($cadena);
  25.  
  26. //pasamos a minúscula la cadena
  27. $cadena = strtolower($cadena);
  28.  
  29. //limpiamos saltos de líneas y tab
  30. $cadena = ereg_replace("[ \t\n\r]+", " ", $cadena);
  31.  
  32. //limpiamos todos los caracteres inválidos
  33. $cadena = ereg_replace("[^ A-Za-z0-9_]", "", $cadena);
  34.  
  35. //limpieza de espacios vacíos de los valores inválidos al final de la cadena
  36. $cadena = trim($cadena);
  37.  
  38. //reemplazamos los espacios vacios por el separador
  39. $cadena = str_replace(" ", $separador, $cadena);
  40.  
  41. return $cadena;
  42. }
  43.  
  44. $str = generar_slug('Así es el ejemplo para generar el Slug ¿o no?');
  45.  
  46. //retornara #-> asi-es-el-ejemplo-para-generar-el-slug-o-no
  47. echo $str;

Report this snippet  

You need to login to post a comment.