Tecnicamente, con
eval(' ?>'); (que por cierto falta un ; despues de >) finalizas el "modo PHP" para pasar a "modo HTML"... por tanto, eval($codigo); no seria interpretado, sino enviado al navegador como texto plano.
Ahora, el error, seguramente es por la falta de ese
; todas las sentencias deben terminar con punto y coma.
Si quieres que te funcione el eval leyendo el archivo asegurate de eliminar los cambios de modo entre PHP (
<?php -
<? y
?>)y HTML, ya sea directamente en el archivo o usando
str_replace() despues de leerlo.