1

我正在尝试读取文本文件的内容,但不知道如何告诉 PHP 在到达末尾时中断。

当前代码是:

<?php

$file = "campaign1_20_db.txt";
$content = file_get_contents($file);
$string = explode("\n",$content);

$index = 0;

while ($index <= 100):

$index = $index + 1;
endwhile;

?>

如何将 100 替换为取决于 PHP 到达文本文件末尾的内容?

4

3 回答 3

3

由于您使用的是explode,因此您将拥有一系列行。但是,您可以简单地拥有:

$strings = file($file);

在没有显式爆炸的情况下为您做同样的事情。然后,您可以简单地对该数组执行 foreach 循环:

foreach($strings as $line) {
  ...
}

循环遍历这些行中的每一行。但是,您似乎只是想计算有多少行,所以 foreach 甚至没有必要:

$total_lines = count($strings);
于 2012-12-30T15:29:46.790 回答
1

(我希望你有比逐行计算更复杂的东西,否则忽略这个答案)

您可以使用更轻(就消耗的内存而言)算法来遍历文件的行:

$f = fopen('campaign1_20_db.txt');
while ($line = fgets($f)) {
    // your code
}
于 2012-12-30T15:37:23.950 回答
0

如果要查看是否已到达文件末尾,则必须使用 fopen、fread 和 feof 的老方法。代码将类似于

 <?php
$file = fopen("file.txt");
while(!feof($file))  {
$content .= fread( $file, 1024 );
}

铁氧体

您正在查看的功能称为文件结束。这基本上告诉您是否已到达文件末尾。

弗里德

在 fread 命令中,您传递了文件处理程序(由 fopen 返回)和必须读取的字节数。最大值取决于您的 PHP 设置。

于 2012-12-30T16:14:27.227 回答