Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2007, 09:48
GreenlanternX
 
Fecha de Ingreso: agosto-2006
Mensajes: 141
Antigüedad: 18 años, 7 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