No entiendo en tu codigo para que hacés el foreach si luego no utilizás los datos: $line_num y $line
Además, esa ejecución va a darse por cada renglón, y no por cada bloque. Me equivoco?
Respecto a saltos de linea, fijate en el manual:
http://php.net/manual/es/function.file.php Cita: Cada línea en la matriz resultante incuirá el final de línea, a menos que se use FILE_IGNORE_NEW_LINES, por lo que aún necesita utilizar rtrim() si no quiere que el final de línea esté presente.