Prueba quiza en lugar de fputs()
fwrite()
Tambien puedes quitar el punto cuando das valor por primera ves:
Código PHP:
//asi la primera vez (para evitar concatenar un espacio vacio):
$nuevo = "<"."?\n";
// luego si, .=
$nuevo .= "?".">";
...Tengo un codigo asi que no me trae problemas:
Código PHP:
$code="<? "\n" alguna_funcion();"\n" ?>"; //...mas extenso obvio
//$code sera el codigo que se escribira en el archivo
//digo porque tu lo tienes asi:
//(...lo hice asi una vez)
$nuevo2 .= "<"."?\n";
...Detalles
Tambien podrias ver si el archivo se escribe correctamente