Al pasar ciertos caracteres por la función no me los imprime como es debido. El caracter al que me refiero es el de Euro '€'.
Primero me sucedió con la función nativa de PHP-strrv()-, así que me hice una propia para probar, pensando que sería cosa de la función, y me dió el mismo resultado.
Luego pensé que codificando la cadena a UTF8 se solucionaría y tampoco.
Dejo un ejemplo del código y su resultado
Código PHP:
reverse(utf8_encode('AB€D'));
/*******************************************************/
function reverse($input)
{
$str="";
$len = strlen($input);
for($i=$len-1; $i>=0; $i--)
{
$str.=$input[$i];
}
echo $str;
}
D�‚¢�BA
Si no uso la codificación UTF8 me imprime lo siguiente:
D���BA
El caso es que al poner un if para comprobar si está el caracter '€', no lo reconoce al pasarlo en la función. Ejemplo:
Código PHP:
reverse( 'AB€D' );
/*******************************************************/
function reverse($input)
{
$str="";
$len = strlen($input);
for($i=$len-1; $i>=0; $i--)
{
if($input[$i]=='€' ){
echo "CARACTER DETECTADO";
}
}
}
Vamos, que parece que al recorrer el String hacia atrás no me detecta el caracter.
Lo curioso es que he probado haciendo el for hacía delante, o sea, leer el String y volver a imprimirlo sin cambiar el orden de las palabras y SÍ me imprime el caracter del Euro correctamente.
¿Alguien sabe qué pasa?.
Saludos