Foros del Web » Programando para Internet » PHP »

Problema con str_replace y mysql

Estas en el tema de Problema con str_replace y mysql en el foro de PHP en Foros del Web. Tengo un problema que llevo bastantes horas probando cosas y no caigo en que puede pasar, ya he cerrado un poco el cerco pero aún ...
  #1 (permalink)  
Antiguo 21/12/2013, 13:24
Avatar de fieroso  
Fecha de Ingreso: diciembre-2009
Mensajes: 127
Antigüedad: 14 años, 4 meses
Puntos: 1
Problema con str_replace y mysql

Tengo un problema que llevo bastantes horas probando cosas y no caigo en que puede pasar, ya he cerrado un poco el cerco pero aún no lo solucioné.

Simplemente lo que quiero es reemplazar los acentos y caracteres raros para generar una url

Tengo esta función

Código:
function hace_reemplazo($guia)
{
$titulore = ereg_replace("á", "a",ereg_replace("í", "i", $guia));
return $titulore;
}
Bien ahora he comprobado que la función funciona correctamente de esta forma

Código:
$cadena="Sí y que pasa más";
echo hace_reemplazo($cadena);
Eso va perfecto imprime "Si y que más"

El problema viene cuando le paso una cadena extraide de una base de datos mysql

sólo me reemplaza los espacios y letras sin acento, pero los acentos nada de nada.

por lo que he llegado a la conclusión que es problema de la codificación de la base de datos, bien he comprobado que se guarde la letra como tal en la base de datos y así es se guardan bien "á" "í" etc, de hecho así es como las imprime

Las tablas las tengo en utf8_general_ci y motor
MyISAM

Hace lo mismo tanto si la columna es varchar que longtext, he probado de todo

Aver si alguien me arroja un poco de luz porque ando un poco loco ya

gracias de antemano

*he estado probando otras funciones como explode y pasa igual los caracteres con acento no los coge, es algo extraño porque sólo pasa con lo extraido de la base de datos

Última edición por fieroso; 21/12/2013 a las 13:52
  #2 (permalink)  
Antiguo 21/12/2013, 14:16
Avatar de fieroso  
Fecha de Ingreso: diciembre-2009
Mensajes: 127
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Problema con str_replace y mysql

lo he solucionado poniendo justo debajo de la conexion con db esto

mysql_query("SET NAMES 'utf8'");

pero aún no entiendo el porque si en el cortejamiento de la bd ya le digo que use utf8

**nada esto no vale ahora cuando inserto datos no guarda los acentos

Última edición por fieroso; 21/12/2013 a las 14:25

Etiquetas: mysql, tabla
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 03:32.