
04/04/2008, 10:50
|
 | | | Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 21 años, 7 meses Puntos: 21 | |
Re: charset en base y al mostrar hola amigos nuevamente molestanto solo para avisar
que tuve que regresarme desde el principio porque los acentos se guardan mal en mi base de mysql
bueno me di cueta que uso una funcion para capitalizar las palabras en minusculas y desde ahi me arroja los caracteres rarros asi que modifique la rutina ya que en el manual de php indican que el uso de strtolower con acentos puede haber ciertos cambios
bueno asi tenia mi funcíon
function capitalizar($nombre)
{
// aca definimos un array de articulos (en minuscula)
// aunque lo puedes definir afuera y declararlo global aca
$cap_articulos[] = 'a';
$cap_articulos[] = 'de';
$cap_articulos[] = 'del';
$cap_articulos[] = 'la';
$cap_articulos[] = 'los';
$cap_articulos[] = 'las';
$cap_articulos[] = 'y';
// explotamos el nombre
$cap_palabras = explode(' ', $nombre);
// creamos la variable que contendra el nombre
// formateado
$nuevoNombre = '';
// parseamos cada palabra
foreach($cap_palabras as $elemento)
{
// si la palabra es un articulo
if(in_array(trim(strtolower($elemento)), $cap_articulos))
{
// concatenamos seguido de un espacio
$nuevoNombre .= strtolower($elemento)." ";
}
else
{
// sino, es un nombre propio, por lo tanto aplicamos
// las funciones y concatenamos seguido de un espacio
$nuevoNombre .= ucfirst(strtolower($elemento))." ";
}
}
return trim($nuevoNombre);
}
luego la cambien asi:
function capitalizar($nombre)
{
// aca definimos un array de articulos (en minuscula)
// aunque lo puedes definir afuera y declararlo global aca
$outputString = utf8_decode($nombre);
$outputString = strtolower($outputString);
$nombre = utf8_encode($outputString);
$cap_articulos[] = 'a';
$cap_articulos[] = 'de';
$cap_articulos[] = 'del';
$cap_articulos[] = 'la';
$cap_articulos[] = 'los';
$cap_articulos[] = 'las';
$cap_articulos[] = 'y';
// explotamos el nombre
$cap_palabras = explode(' ', $nombre);
// creamos la variable que contendra el nombre
// formateado
$nuevoNombre = '';
// parseamos cada palabra
foreach($cap_palabras as $elemento)
{
// si la palabra es un articulo
//if(in_array(trim(strtolower($elemento)), $cap_articulos))
if(in_array(trim($elemento), $cap_articulos))
{
// concatenamos seguido de un espacio
$nuevoNombre .= $elemento." ";
}
else
{
// sino, es un nombre propio, por lo tanto aplicamos
// las funciones y concatenamos seguido de un espacio
$nuevoNombre .= ucfirst($elemento)." ";
}
}
return trim($nuevoNombre);
}
ahora voy a comprobar si ya puedo guardar bien
en un momento les aviso
saludos
__________________ gerardo |