Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2007, 09:48
GreenlanternX
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 20 años, 2 meses
Puntos: 0
caracteres especiales

hola otra vez XD, tengo la siguiente situacion:
tengo una base de datos en postgre , en la k se insertan nombres y apellidos, y posteriormente se solicitan datos extra usanso como referncia , el nombre y los apellidos, el problema son los caracteres especiales (vocales acentuadas ,Ñ), hice 1 modulo k deberia estandarizar los nombres (2 versiones, con el caracter, y con entidades)
Con entidades:
Código PHP:
function reemplazo($cadena, $c, $r){
for(
$i=0;$i<strlen($cadena);$i++){ 
    if (
$cadena{$i}==$c){
       
$cadena{$i}=$r;}}
return (
$cadena);
}
function 
arreglar($cadena){
$cadena=reemplazo($cadena, '&agrave;', 'A');
$cadena=reemplazo($cadena, '&aacute;', 'A');
$cadena=reemplazo($cadena, '&atilde;', 'A');
$cadena=reemplazo($cadena, '&acirc;', 'A');
$cadena=reemplazo($cadena, '&Agrave;', 'A');
$cadena=reemplazo($cadena, '&Aacute;', 'A');
$cadena=reemplazo($cadena, '&Atilde;', 'A');
$cadena=reemplazo($cadena, '&Acirc;', 'A');
$cadena=reemplazo($cadena, '&egrave;', 'E');
$cadena=reemplazo($cadena, '&eacute;', 'E');
$cadena=reemplazo($cadena, '&etilde;', 'E');
$cadena=reemplazo($cadena, '&ecirc;', 'E');
$cadena=reemplazo($cadena, '&Egrave;', 'E');
$cadena=reemplazo($cadena, '&Eacute;', 'E');
$cadena=reemplazo($cadena, '&Etilde;', 'E');
$cadena=reemplazo($cadena, '&Ecirc;', 'E');
$cadena=reemplazo($cadena, '&igrave;', 'I');
$cadena=reemplazo($cadena, '&iacute;', 'I');
$cadena=reemplazo($cadena, '&itilde;', 'I');
$cadena=reemplazo($cadena, '&icirc;', 'I');
$cadena=reemplazo($cadena, '&Igrave;', 'I');
$cadena=reemplazo($cadena, '&Iacute;', 'I');
$cadena=reemplazo($cadena, '&Itilde;', 'I');
$cadena=reemplazo($cadena, '&Icirc;', 'I');
$cadena=reemplazo($cadena, '&ograve;', 'O');
$cadena=reemplazo($cadena, '&oacute;', 'O');
$cadena=reemplazo($cadena, '&otilde;', 'O');
$cadena=reemplazo($cadena, '&ocirc;', 'O');
$cadena=reemplazo($cadena, '&Ograve;', 'O');
$cadena=reemplazo($cadena, '&Oacute;', 'O');
$cadena=reemplazo($cadena, '&Otilde;', 'O');
$cadena=reemplazo($cadena, '&Ocirc;', 'O');
$cadena=reemplazo($cadena, '&ugrave;', 'U');
$cadena=reemplazo($cadena, '&uacute;', 'U');
$cadena=reemplazo($cadena, '&utilde;', 'U');
$cadena=reemplazo($cadena, '&ucirc;', 'U');
$cadena=reemplazo($cadena, '&Ugrave;', 'U');
$cadena=reemplazo($cadena, '&Uacute;', 'U');
$cadena=reemplazo($cadena, '&Utilde;', 'U');
$cadena=reemplazo($cadena, '&Ucirc;', 'U');
$cadena=reemplazo($cadena, '&ntilde;', 'N');
$cadena=reemplazo($cadena, '&Ntilde;', 'N');
$cadena=strtoupper($cadena);
return(
$cadena);
} 
Con los Caracteres
Código PHP:
function reemplazo($cadena,$c,$r){

for(
$i=0;$i<strlen($cadena);$i++){ 
    if (
$cadena{$i}==$c){
       
$cadena{$i}=$r;}}
return 
$cadena;
  
} 
function 
arreglar($cadena){
$cadena=reemplazo($cadena,'à','A');
$cadena=reemplazo($cadena,'á','A');
$cadena=reemplazo($cadena,'ä','A');
$cadena=reemplazo($cadena,'â','A');
$cadena=reemplazo($cadena,'À','A');
$cadena=reemplazo($cadena,'Á','A');
$cadena=reemplazo($cadena,'Ä','A');
$cadena=reemplazo($cadena,'Â','A');
$cadena=reemplazo($cadena,'è','E');
$cadena=reemplazo($cadena,'é','E');
$cadena=reemplazo($cadena,'ë','E');
$cadena=reemplazo($cadena,'ê','E');
$cadena=reemplazo($cadena,'È','E');
$cadena=reemplazo($cadena,'É','E');
$cadena=reemplazo($cadena,'Ë','E');
$cadena=reemplazo($cadena,'Ê','E');
$cadena=reemplazo($cadena,'ì','I');
$cadena=reemplazo($cadena,'í','I');
$cadena=reemplazo($cadena,'ï','I');
$cadena=reemplazo($cadena,'î','I');
$cadena=reemplazo($cadena,'Ì','I');
$cadena=reemplazo($cadena,'Í','I');
$cadena=reemplazo($cadena,'Ï','I');
$cadena=reemplazo($cadena,'Î','I');
$cadena=reemplazo($cadena,'ò','O');
$cadena=reemplazo($cadena,'ó','O');
$cadena=reemplazo($cadena,'ö','O');
$cadena=reemplazo($cadena,'ô','O');
$cadena=reemplazo($cadena,'Ò','O');
$cadena=reemplazo($cadena,'Ó','O');
$cadena=reemplazo($cadena,'Ö','O');
$cadena=reemplazo($cadena,'Ô','O');
$cadena=reemplazo($cadena,'ù','U');
$cadena=reemplazo($cadena,'ú','U');
$cadena=reemplazo($cadena,'ü','U');
$cadena=reemplazo($cadena,'û','U');
$cadena=reemplazo($cadena,'Ù','U');
$cadena=reemplazo($cadena,'Ú','U');
$cadena=reemplazo($cadena,'Ü','U');
$cadena=reemplazo($cadena,'Û','U');
$cadena=reemplazo($cadena,'Ñ','N');
$cadena=reemplazo($cadena,'ñ','N');
$cadena=strtoupper($cadena);
} 
el problema es k no esta reeeplazandolos, como se supone k debiera, ya k reviso la base y siguen estando los caracteres especiales, si alguien sabe como solucionar esto k por favor me lo diga