Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/12/2009, 00:02
Avatar de dggluz
dggluz
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: cambiar caracteres

No es una solución óptima en cuanto a recursos, pero queda elegante:
Código PHP:
function cambiazo($arrLetras$arrReemplazos$texto)
{
    if(
count($arrLetras)!=count($arrReemplazos))
    {
        echo 
"ERROR: para cada letra a reemplazar debe haber un reemplazo";
        exit();
    }
    
$letra=array_shift($arrLetras);
    
$reemplazo=array_shift($arrReemplazos);
    if(
count($arrLetras)>&& count($arrReemplazos)>0)
    {
        return 
str_replace($letra$reemplazocambiazo($arrLetras$arrReemplazos$texto));
    }
    else
    {
        return 
str_replace($letra$reemplazo$texto);
    }
}

echo 
cambiazo("Escribo con ñ y con Ñ", array('ñ''Ñ'), array('&ntilde''Ñ'); 
No garantizo que funcione, lo acabo de inventar y no lo probé: simplemente va reemplazando las letras que se le pasen en los arrays (ahora que lo pienso quedaría más prolijo un sólo array pero asociativo donde la clave sea el carácter a reemplazar y el dato el reemplazo) y llamando recursivamente a la misma función con los arrays que se le pasan pero sin el elemento que ya se usó. ¡Suerte!

PD: quizás algunas funciones de expresiones regulares ya te permitan hacer eso sin tanto lío; no lo sé.