如何告诉PHP在到达行尾时停止而不返回错误?

时间:2012-12-30 15:27:41

标签: php while-loop text-files

我正在尝试阅读文本文件的内容,但不知道如何告诉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;

?>

如何用依赖于PHP到达文本文件末尾的内容替换100?

3 个答案:

答案 0 :(得分:3)

由于你正在使用爆炸,你将拥有一系列线条。但是,您可以简单地:

$strings = file($file);

在没有明显爆炸的情况下为你做同样的事情。然后,您可以在该数组上执行foreach循环:

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

遍历每一行。但是,看起来你只是想计算有多少行,所以甚至没有必要使用foreach:

$total_lines = count($strings);

答案 1 :(得分:1)

(我希望你有比复杂计算更复杂的东西,其他人忽略了这个答案)

您可以使用较轻的(在消耗内存方面)算法来迭代文件的行:

$f = fopen('campaign1_20_db.txt');
while ($line = fgets($f)) {
    // your code
}

答案 2 :(得分:0)

如果你想看看你是否已经到达文件的末尾,那么你必须使用fopen,fread和feof这种古老的方式。代码就像是

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

<强> FEOF

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

<强> FREAD

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