Именно на пхп надо? В линухе есть tail как раз делает что тебе надо.
На пыхе наверно fseek на последний символ и читать один символ, потом fseek на предпоследний и так далее, складывая это дело в стек, проверяя не перенос ли это. Если перенос- писать в стек строк и начинать копить ещё одну строку. Но выглядит как-то муторно, да и кодировку файла нужно знать, и переносы в разных осях разные, тоже надо учитывать.