para que funcione, la cadena original debe ser compatible
osea... si "no se deja" debes usar utf8_encode/decode para hacer compatible la cadena antes de intentar el cambio
Código PHP:
$valor=str_replace("í","i",utf8_encode($row[1])); // o utf8_decode
eso se debe a la codificación del propio script (
archivo) si esta guardada en ANSI/ISO debes convertirla UTF-8 o al revés, todo se origina desde la fuente de tus datos... y, los caracteres que manualmente usas...
que por cierto.... las funciones que están en el foro son perfectas, suerte!