Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Quitar caracteres especiales de una cadena

Estas en el tema de Quitar caracteres especiales de una cadena en el foro de PHP en Foros del Web. Me he basado en http://www.forosdelweb.com/f18/reemp...rchivo-843528/ pero me hace algo estraño ¿alguna idea? gracias Script: Código PHP: <?php function  formatearNombre ( $cadena ) {    //$cadena = strtolower($cadena);   //$cadena = strtr($cadena, utf8_decode('áéíóúñ '), 'aeioun_'); ...
  #1 (permalink)  
Antiguo 11/08/2014, 14:41
 
Fecha de Ingreso: enero-2008
Mensajes: 571
Antigüedad: 12 años
Puntos: 9
Quitar caracteres especiales de una cadena

Me he basado en http://www.forosdelweb.com/f18/reemp...rchivo-843528/ pero me hace algo estraño ¿alguna idea? gracias

Script:
Código PHP:
<?php
function formatearNombre($cadena) {
  
//$cadena = strtolower($cadena);
  //$cadena = strtr($cadena, utf8_decode('áéíóúñ '), 'aeioun_');
  //echo utf8_encode($cadena);

  
echo utf8_encode(strtr(strtolower($cadena), utf8_decode('áéíóúñ '), 'aeioun_'));
}
formatearNombre('Hóla Muñdo');
?>
Devuelve:
Código:
hóla_muñdo
  #2 (permalink)  
Antiguo 11/08/2014, 14:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Quitar caracteres especiales de una cadena

Tu documento debe indicar la codificación correcta a mostrar en el navegador.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/08/2014, 14:53
 
Fecha de Ingreso: enero-2008
Mensajes: 571
Antigüedad: 12 años
Puntos: 9
Respuesta: Quitar caracteres especiales de una cadena

Gracias por responder @pateketrueke.

Uso estos dos:
Código HTML:
<meta charset="utf-8"> 
Código PHP:
header('Content-Type: text/html; charset=UTF-8'); 
  #4 (permalink)  
Antiguo 11/08/2014, 14:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Quitar caracteres especiales de una cadena

Claro, pero no deberías entonces usar utf8_encode/decode sin conocer los resultados que produce, ahí es donde estás cometiendo el error.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/08/2014, 16:27
 
Fecha de Ingreso: enero-2008
Mensajes: 571
Antigüedad: 12 años
Puntos: 9
Respuesta: Quitar caracteres especiales de una cadena

No lo entiendo muy bien, supongo que debería ser más simple

de esta forma funciona, pero me parece mas engorrosa
Código PHP:
    function formatear($cadena) {
        echo 
strtolower(strtr($cadena, array('á'=>'a','é'=>'e','í'=>'i','ó'=>'o','ú'=>'u','ñ'=>'n',' '=>'_')));
    }
    
formatear('Hóla Muñdo'); 
  #6 (permalink)  
Antiguo 11/08/2014, 17:15
 
Fecha de Ingreso: enero-2008
Mensajes: 571
Antigüedad: 12 años
Puntos: 9
Respuesta: Quitar caracteres especiales de una cadena

Al final lo he consegido
Código PHP:
function normaliza($cadena){ return utf8_encode(strtolower(strtr(utf8_decode($cadena), utf8_decode('áéíóúñ ¿?'),'aeioun___')));    } 

Etiquetas: cadena, caracteres, especiales
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 20:45.