¿Y por qué dices que hay lineas que se las salta?
Es decir, en tu código no existe ninguna condición para que así suceda.
Además entiendo que intentas leer linea por linea, ¿para qué usar fopen/fgets?
Es decir, es mucho más simple cargar el archivo en un array usando la función file(), etc.
Además la expresión regular que utilizas es de lo más imprecisa /[\s]+/ ¿sabes exactamente lo que hace?