Foros del Web » Programando para Internet » PHP »

consulta sobre cadena

Estas en el tema de consulta sobre cadena en el foro de PHP en Foros del Web. buenas, seguro que es una cosa muy simple. quiero pasar por url una variable que obtengo de una bd. el problema es que esta variable ...
  #1 (permalink)  
Antiguo 08/11/2011, 04:26
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
consulta sobre cadena

buenas,

seguro que es una cosa muy simple. quiero pasar por url una variable que obtengo de una bd. el problema es que esta variable consta de 2 palabras, y tiene espacio. y en la URL me salen los típicos mesa%de%habitaci%n, y otros símbolos si lleva acento.

de que forma puedo transformar esa variable antes de enviarla, en algo como:

mesa-de-habitacion

saludos!
  #2 (permalink)  
Antiguo 08/11/2011, 04:38
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: consulta sobre cadena

buenas,

googleando he encontrado una función, por si a alguien le interesa:

Código:
function text2url($string) {
   $spacer = "-";
   $string = trim($string);
   $string = strtolower($string);
   $string = trim(ereg_replace("[^ A-Za-z0-9_]", " ", $string)); 
 
   $string = ereg_replace("[ \t\n\r]+", "-", $string);
   $string = str_replace(" ", $spacer, $string);
   $string = ereg_replace("[ -]+", "-", $string);
   return $string; 
}
y lo hace todo genial, lo único es que la base de datos que he heredado tiene insertados caracteres con acentos, y el acento me lo substituye así:

máquinas pasa a ser m-aacute-quinas

como puedo solucionarlo para que lo deje sin acento?

saludos!
  #3 (permalink)  
Antiguo 08/11/2011, 12:47
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: consulta sobre cadena

esta funcion tal vez te pueda servir

Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * Reemplaza todos los acentos por sus equivalentes sin ellos
  4.  *
  5.  * @param $string
  6.  *  string la cadena a sanear
  7.  *
  8.  * @return $string
  9.  *  string saneada
  10.  */
  11. function reemplazar($string)
  12. {
  13.  
  14.     $string = trim($string);
  15.  
  16.     $string = str_replace(
  17.         array('á', 'à', 'ä', 'â', 'ª', 'Á', 'À', 'Â', 'Ä'),
  18.         array('a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A'),
  19.         $string
  20.     );
  21.  
  22.     $string = str_replace(
  23.         array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ê', 'Ë'),
  24.         array('e', 'e', 'e', 'e', 'E', 'E', 'E', 'E'),
  25.         $string
  26.     );
  27.  
  28.     $string = str_replace(
  29.         array('í', 'ì', 'ï', 'î', 'Í', 'Ì', 'Ï', 'Î'),
  30.         array('i', 'i', 'i', 'i', 'I', 'I', 'I', 'I'),
  31.         $string
  32.     );
  33.  
  34.     $string = str_replace(
  35.         array('ó', 'ò', 'ö', 'ô', 'Ó', 'Ò', 'Ö', 'Ô'),
  36.         array('o', 'o', 'o', 'o', 'O', 'O', 'O', 'O'),
  37.         $string
  38.     );
  39.  
  40.     $string = str_replace(
  41.         array('ú', 'ù', 'ü', 'û', 'Ú', 'Ù', 'Û', 'Ü'),
  42.         array('u', 'u', 'u', 'u', 'U', 'U', 'U', 'U'),
  43.         $string
  44.     );
  45.  
  46.     $string = str_replace(
  47.         array('ñ', 'Ñ', 'ç', 'Ç'),
  48.         array('n', 'N', 'c', 'C',),
  49.         $string
  50.     );
  51.  
  52.     //Esta parte se encarga de eliminar cualquier caracter extraño
  53.     $string = str_replace(
  54.         array("\\", "¨", "º", "-", "~",
  55.              "#", "@", "|", "!", "\"",
  56.              "·", "$", "%", "&", "/",
  57.              "(", ")", "?", "'", "¡",
  58.              "¿", "[", "^", "`", "]",
  59.              "+", "}", "{", "¨", "´",
  60.              ">", "<", ";", ",", ":",
  61.              ".", " "),
  62.         '',
  63.         $string
  64.     );
  65.  
  66.     return $string;
  67. }
  68. echo reemplazar("hello ñs");
  69. ?>
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com

Etiquetas: variables, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:08.