使用php向后读取文件行(fgets)

Nir*_*ana 9 php file fgets

我有一个txt文件,我想向后阅读,目前我正在使用这个:

$fh = fopen('myfile.txt','r');
while ($line = fgets($fh)) {
  echo $line."<br />";
}
Run Code Online (Sandbox Code Playgroud)

这会输出我文件中的所有行.
我想从下到上阅读这些行.

有办法吗?

ser*_*gio 13

第一种方式:

$file = file("test.txt");
$file = array_reverse($file);
foreach($file as $f){
    echo $f."<br />";
}
Run Code Online (Sandbox Code Playgroud)

第二种方式(a):

要完全反转文件:

$fl = fopen("\some_file.txt", "r");
for($x_pos = 0, $output = ''; fseek($fl, $x_pos, SEEK_END) !== -1; $x_pos--) {
    $output .= fgetc($fl);
    }
fclose($fl);
print_r($output);

第二种方式(b): 当然,你想要逐行逆转......


$fl = fopen("\some_file.txt", "r");
for($x_pos = 0, $ln = 0, $output = array(); fseek($fl, $x_pos, SEEK_END) !== -1; $x_pos--) {
    $char = fgetc($fl);
    if ($char === "\n") {
        // analyse completed line $output[$ln] if need be
        $ln++;
        continue;
        }
    $output[$ln] = $char . ((array_key_exists($ln, $output)) ? $output[$ln] : '');
    }
fclose($fl);
print_r($output);