Bueno, si te da error es porque obviamente no los está reemplazando. De verdad no entiendo, yo utilizo esa función y siempre me funciona a la perfección.
Código PHP:
$_POST = eliminar_caracteres_prohibidos($_POST);
Esto es todo lo que coloco y listo, desaparecen todos los caracteres "prohibidos" de las variables $_POST