Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/12/2013, 13:24
Avatar de fieroso
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