Hola,
Bueno, si el espacio en memoria no es problema, podrias usar file() (
www.php.net/file) para leer todo el fichero en un array donde cada elemento del array es una linea del fichero. Creo que es mas facil recorrer un array que ir recorriendo el fichero poco a poco.
¿Has hecho ya el pseudocodigo de la aplicacion? Ya sabes, ir dividiendo el problema en pasos mas pequeños que pueden ser realizados por una funcion. Por cierto, ¿tienes que hacerlo con OOP o vale con funciones? (mas que nada, porque si lo haces con OOP y no sabes OOP pues no es plan).
Saludos.
PD: Luego cuando tenga un hueco hago un esbozo de como podria ser el programa.