在php中获取文本文件的前3行

use*_*811 0 php text lines

我正在用PHP开发一个网站,我必须在索引中包含PHP中文本文件的前3行.我怎样才能做到这一点?

<?php
$file = file_get_contents("text.txt");
//echo the first 3 lines, but it's wrong
echo $file;
?>
Run Code Online (Sandbox Code Playgroud)

Pau*_*ich 9

更简单:

<?php
$file_data = array_slice(file('file.txt'), 0, 3);
print_r($file_data);
Run Code Online (Sandbox Code Playgroud)

  • 这会将整个文件读取到数组元素中,然后隔离前三个元素。是否简洁?是的。它是精益/高效的吗?不。 (5认同)

Sve*_*sen 5

打开文件,读取行,关闭文件:

// Open the file for reading
$file = 'file.txt';
$fh = fopen($file, 'rb');

// Handle failure
if ($fh === false) {
    die('Could not open file: '.$file);
}
// Loop 3 times
for ($i = 0; $i < 3; $i++) {
    // Read a line
    $line = fgets($fh);

    // If a line was read then output it, otherwise
    // show an error
    if ($line !== false) {
        echo $line;
    } else {
        die('An error occurred while reading from file: '.$file);
    }
}
// Close the file handle; when you are done using a
// resource you should always close it immediately
if (fclose($fh) === false) {
    die('Could not close file: '.$file);
}
Run Code Online (Sandbox Code Playgroud)


Bar*_*mar 5

file()函数以数组形式返回文件的行。除非文件很大(几兆字节),否则您可以使用array_slice它来获取前 3 个元素:

$lines = file('file.txt');
$first3 = array_slice($lines, 0, 3);
echo implode('', $first3);
Run Code Online (Sandbox Code Playgroud)