2

我只需要使用 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。

然后,第二步是是否可以以与初始顺序不同的顺序回显这些行。

如果有人知道一个简单的方法来做到这一点,那就太好了!
提前谢谢。

4

3 回答 3

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

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

file()

于 2013-02-07T12:51:13.687 回答
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));
于 2013-02-07T12:56:32.290 回答
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);
于 2015-01-31T07:02:13.050 回答