PHP:回显一些txt文件的选定行

时间:2013-02-07 12:49:22

标签: php echo lines

我需要使用PHP回显.txt文件中的选定行。 txt文件内容如下所示:

1 111 111 111 111 111 111 111 111 111 111
2 196 182 227 190 195 196 278 197 323 265
3 84.1 84.1 84.1 84.2 85.4 84.1 84.2 84.1 84.1 84.1
4 107 107 107 107 107 107 107 107 107 107
5 10.0 9.29 9.86 9.90 9.57 9.56 9.52 9.55 10.0 9.62
6 0.652 0.622 0.676 0.617 0.637 0.617 0.563 0.601 0.586 0.601
7 132 132 132 132 132 132 481 132 132 132
8 113 113 113 113 113 113 113 113 113 113
9 510 571 604 670 647 667 656 257 264 431
10 245 246 247 246 246 245 247 246 247 247

以前的工作代码回应了每一行。

$fp = fopen("http://xxx/myfile.txt","r");
while (!feof($fp)) {
$page .= fgets($fp, 4096); 
}
fclose($fp); 
echo $page;
break;

我正在努力获得相同的格式,但只能使用选定的行。 例如,只说行:3,5,8,10。

第二步将是如果线路可以以与初始线路不同的顺序回显。

如果有人知道一种简单的方法,那就太棒了! 提前完成。

3 个答案:

答案 0 :(得分:4)

$lines = file('http://xxx/myfile.txt');

print $lines[2];  // line 3
print $lines[4];  // line 5
...

请参阅file()

答案 1 :(得分:1)

这是一个如何完成的例子:

function echo_selected_lines_of_file($file, array $lines)
{
    $fContents = file_get_contents($file); // read the file
    $fLines = explode("\n", $fContents); // split the lines
    foreach($fLines as $key=>$fLine) // foreach line...
        if(in_array($key, $lines)) //if its in the $lines array, print it
            echo $fLine.'<br>';
}

echo_selected_lines_of_file('index.php', array(1,4,7));

答案 2 :(得分:0)

您可以使用file()将每行转换为数组。但是如果你的文件很大,它会占用一点内存。

$lines_to_print = [1,3,5,8];

$lines = file('file.txt');
for($i in $line_to_print) {
    echo $lines[$i];
}

有效的解决方案是

$i = 0;
$lines_to_print = [1,3,5,8];

$file = fopen("file.txt", "r");
while(!feof($file)){
    $line = fgets($file);
    if(in_array(++$i, $lines_to_print)) {
        echo $line
    }
}
fclose($file);