Ver Mensaje Individual
  #119 (permalink)  
Antiguo 18/01/2010, 10:52
Avatar de PosProdukcion
PosProdukcion
 
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Respuesta: Biblioteca de Clases,Funciones y Sub-rutinas.

Saludos, aquí una serie de funciones para:

- quitar las tildes y signos de puntuación
- crear URL amigables a partir de una frase


Código ASP:
Ver original
  1. '=======================================================
  2.     'getUrlAmigable
  3.     'Elimina las tildes y las palabras irrelevantes y cambia los espacios por -
  4.     '=======================================================
  5.     Function getUrlAmigable(ByVal strTitulo)
  6.         if strTitulo<>"" then
  7.             strTitulo = quitaPuntuaciones(strTitulo, " ")
  8.             'Al sustituir los signos de puntuacion por espacios pueden haber quedado
  9.             'varios espacios seguidos, se cambian por uno solo
  10.             strTitulo = Replace(strTitulo, "  ", " ")
  11.             strTitulo = lcase(quitaTildes(strTitulo))
  12.  
  13.             'Esta es la lista de palabras consideradas irrelevantes para formar la URL
  14.             Dim irrelevantes(20), iWd
  15.  
  16.             irrelevantes(0) = "el"
  17.             irrelevantes(1) = "la"
  18.             irrelevantes(2) = "las"
  19.             irrelevantes(3) = "lo"
  20.             irrelevantes(4) = "los"
  21.             irrelevantes(5) = "a"
  22.             irrelevantes(6) = "con"
  23.             irrelevantes(7) = "de"
  24.             irrelevantes(8) = "desde"
  25.             irrelevantes(9) = "en"
  26.             irrelevantes(10) = "para"
  27.             irrelevantes(11) = "por"
  28.             irrelevantes(12) = "sin"
  29.             irrelevantes(13) = "es"
  30.             irrelevantes(14) = "son"
  31.             irrelevantes(15) = "este"
  32.             irrelevantes(16) = "esto"
  33.             irrelevantes(17) = "esta"
  34.             irrelevantes(18) = "estos"
  35.             irrelevantes(19) = "estas"
  36.             irrelevantes(20) = "y"
  37.  
  38.             'Añade un espacio al principio y al final para sustituir solo palabras
  39.             'completas incluyendo la primera y ultima palabras
  40.             strTitulo = " " & strTitulo & " "
  41.             for iWd=0 to uBound(irrelevantes)
  42.                 strTitulo = Replace(strTitulo, " " & irrelevantes(iWd) & " ", " ")
  43.             next
  44.             strTitulo = Trim(strTitulo)
  45.             strTitulo = Replace(strTitulo, " ", "-")
  46.         end if
  47.         getUrlAmigable = strTitulo
  48.     End function

Utiliza las siguientes funciones:

Código ASP:
Ver original
  1. '====================================================
  2.     'quitaTildes()
  3.     'Cambia los caracteres con tildes, ñ, ç por letras sin tilde o N o C
  4.     'Elimina las tildes por completo, puede ser necesario al pasar datos
  5.     'desde UTF-8 a sistemas con ISO-8859-1
  6.      Function quitaTildes(texto)
  7.         If not EsNulo(texto) Then
  8.             texto = Replace(texto, "¡", "")
  9.             texto = Replace(texto, "¿", "")
  10.             texto = Replace(texto, "'", "")
  11.             texto = Replace(texto, "º", "o", 1, Len(texto), 1)
  12.             texto = Replace(texto, "ª", "a", 1, Len(texto), 1)
  13.  
  14.             Texto = Replace(Texto, "á", "a", 1, Len(Texto), 1)
  15.             Texto = Replace(Texto, "é", "e", 1, Len(Texto), 1)
  16.             Texto = Replace(Texto, "í", "i", 1, Len(Texto), 1)
  17.             Texto = Replace(Texto, "ó", "o", 1, -1, 1)
  18.             Texto = Replace(Texto, "ú", "u", 1, Len(Texto), 1)
  19.             Texto = Replace(Texto, "ñ", "n", 1, Len(Texto), 1)
  20.             texto = Replace(texto, "ç", "c", 1, Len(texto), 1)
  21. '
  22.             texto = Replace(texto, "Á", "A", 1, Len(texto), 1)
  23.             texto = Replace(texto, "É", "E", 1, Len(texto), 1)
  24.             texto = Replace(texto, "Í", "I", 1, Len(texto), 1)
  25.             texto = Replace(texto, "Ó", "O", 1, Len(texto), 1)
  26.             texto = Replace(texto, "Ú", "U", 1, Len(texto), 1)
  27.             texto = Replace(texto, "Ñ", "N", 1, Len(texto), 1)
  28.             texto = Replace(texto, "Ç", "C", 1, Len(texto), 1)
  29.  
  30.             texto = Replace(texto, "à", "a", 1, Len(Texto), 1)
  31.             texto = Replace(texto, "è", "e", 1, Len(Texto), 1)
  32.             texto = Replace(texto, "ì", "i", 1, Len(Texto), 1)
  33.             texto = Replace(texto, "ò", "o", 1, Len(Texto), 1)
  34.             texto = Replace(texto, "ù", "u", 1, Len(Texto), 1)
  35.                                        
  36.             texto = Replace(texto, "À",  "A", 1, Len(texto), 1)
  37.             texto = Replace(texto, "È",  "E", 1, Len(texto), 1)
  38.             texto = Replace(texto, "Ì",  "I", 1, Len(texto), 1)
  39.             texto = Replace(texto, "Ò",  "O", 1, Len(texto), 1)
  40.             texto = Replace(texto, "Ù",  "U", 1, Len(texto), 1)
  41.  
  42.             texto = Replace(texto, "ä", "a", 1, Len(Texto), 1)
  43.             texto = Replace(texto, "ë", "e", 1, Len(Texto), 1)
  44.             texto = Replace(texto, "ï", "i", 1, Len(Texto), 1)
  45.             texto = Replace(texto, "ö", "o", 1, Len(Texto), 1)
  46.             texto = Replace(texto, "ü", "u", 1, Len(Texto), 1)
  47.  
  48.             texto = Replace(texto, "Ä",  "A", 1, Len(texto), 1)
  49.             texto = Replace(texto, "Ë",  "E", 1, Len(texto), 1)
  50.             texto = Replace(texto, "Ï",  "I", 1, Len(texto), 1)
  51.             texto = Replace(texto, "Ö",  "O", 1, Len(texto), 1)
  52.             texto = Replace(texto, "Ü",  "U", 1, Len(texto), 1)
  53.  
  54.             texto = Replace(texto, "â", "a", 1, Len(Texto), 1)
  55.             texto = Replace(texto, "ê", "e", 1, Len(Texto), 1)
  56.             texto = Replace(texto, "î", "i", 1, Len(Texto), 1)
  57.             texto = Replace(texto, "ô", "o", 1, Len(Texto), 1)
  58.             texto = Replace(texto, "û", "u", 1, Len(Texto), 1)
  59.  
  60.             texto = Replace(texto, "Â",  "A", 1, Len(texto), 1)
  61.             texto = Replace(texto, "Ê",  "E", 1, Len(texto), 1)
  62.             texto = Replace(texto, "Î",  "I", 1, Len(texto), 1)
  63.             texto = Replace(texto, "Ô",  "O", 1, Len(texto), 1)
  64.             texto = Replace(texto, "Û",  "U", 1, Len(texto), 1)
  65.        Else
  66.             texto = ""
  67.         End If
  68.         quitaTildes = texto
  69.     End Function

Y quitaPuntuaciones(), esta última se debería mejorar con el uso de expresiones regulares, lo dejo para otro día

Código ASP:
Ver original
  1. '====================================================
  2.     'quitaPuntuaciones()
  3.     'Sustituye los signos de puntuacion por la cadena dada en "cambiar_por"
  4.      Function quitaPuntuaciones(texto, cambiar_por)
  5.         if texto<>"" then
  6.             texto = Replace(texto, "\", cambiar_por)
  7.             texto = Replace(texto, "!", cambiar_por)
  8.             texto = Replace(texto, """", cambiar_por)
  9.             texto = Replace(texto, "·", cambiar_por)
  10.             texto = Replace(texto, "#", cambiar_por)
  11.             texto = Replace(texto, "|", cambiar_por)
  12.             texto = Replace(texto, "$", cambiar_por)
  13.             texto = Replace(texto, "~", cambiar_por)
  14.             texto = Replace(texto, "%", cambiar_por)
  15.             texto = Replace(texto, "&", cambiar_por)
  16.             texto = Replace(texto, "/", cambiar_por)
  17.             texto = Replace(texto, "(", cambiar_por)
  18.             texto = Replace(texto, ")", cambiar_por)
  19.             texto = Replace(texto, "=", cambiar_por)
  20.             texto = Replace(texto, "'", cambiar_por)
  21.             texto = Replace(texto, "¡", cambiar_por)
  22.             texto = Replace(texto, "?", cambiar_por)
  23.             texto = Replace(texto, "¿", cambiar_por)
  24.             texto = Replace(texto, "^", cambiar_por)
  25.             texto = Replace(texto, "`", cambiar_por)
  26.             texto = Replace(texto, "´", cambiar_por)
  27.             texto = Replace(texto, "[", cambiar_por)
  28.             texto = Replace(texto, "]", cambiar_por)
  29.             texto = Replace(texto, "{", cambiar_por)
  30.             texto = Replace(texto, "}", cambiar_por)
  31.             texto = Replace(texto, "+", cambiar_por)
  32.             texto = Replace(texto, "*", cambiar_por)
  33.             texto = Replace(texto, "¨", cambiar_por)
  34.             texto = Replace(texto, ";", cambiar_por)
  35.             texto = Replace(texto, ",", cambiar_por)
  36.             texto = Replace(texto, ".", cambiar_por)
  37.             texto = Replace(texto, ":", cambiar_por)
  38.             texto = Replace(texto, "-", cambiar_por)
  39.             texto = Replace(texto, "_", cambiar_por)
  40.             texto = Replace(texto, ">", cambiar_por)
  41.             texto = Replace(texto, "<", cambiar_por)
  42.             texto = Replace(texto, "€", cambiar_por)
  43.         end if
  44.         quitaPuntuaciones = texto
  45.     End function