I want to read a file line by line, but without completely loading it in memory.
My file is too large to open in memory, and if try to do so I always get out of memo
The obvious answer wasn't there in all the responses. PHP has a neat streaming delimiter parser available made for exactly that purpose.
$fp = fopen("/path/to/the/file", "r+"); while (($line = stream_get_line($fp, 1024 * 1024, "\n")) !== false) { echo $line; } fclose($fp);