Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何告诉PHP在到达行尾时停止而不返回错误?_Php_While Loop_Text Files - Fatal编程技术网

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

如何告诉PHP在到达行尾时停止而不返回错误?,php,while-loop,text-files,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; ?> 如何将100替换为依赖于PHP到

我试图读取一个文本文件的内容,但不知道如何告诉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到达文本文件末尾的内容?

因为您使用的是explode,所以会有一个行数组。但是,您可以简单地:

$strings = file($file);
在没有爆炸的情况下,它也能为你做同样的事情。然后,只需在该数组上执行foreach循环:

foreach($strings as $line) {
  ...
}
在每一条线上循环。但是,您似乎只是想计算有多少行,因此甚至不需要foreach:

$total_lines = count($strings);

因为您使用的是explode,所以将有一个行数组。但是,您可以简单地:

$strings = file($file);
在没有爆炸的情况下,它也能为你做同样的事情。然后,只需在该数组上执行foreach循环:

foreach($strings as $line) {
  ...
}
在每一条线上循环。但是,您似乎只是想计算有多少行,因此甚至不需要foreach:

$total_lines = count($strings);

我希望你有比一行一行数数更复杂的东西,否则我就不管这个答案了

在消耗内存算法方面,您可以使用打火机来迭代文件的行:

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

我希望你有比一行一行数数更复杂的东西,否则我就不管这个答案了

在消耗内存算法方面,您可以使用打火机来迭代文件的行:

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

如果您想查看是否已到达文件的末尾,则必须使用fopen、fread和feof的旧方法。代码应该是这样的

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

您正在查看的函数称为file end of。这基本上说明您是否已到达文件末尾

弗瑞德


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

如果您想查看是否已到达文件的末尾,则必须使用fopen、fread和feof的旧方法。代码应该是这样的

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

您正在查看的函数称为file end of。这基本上说明您是否已到达文件末尾

弗瑞德


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

为什么不直接循环$string数组?是否要停止执行?我不熟悉PHP语法。试着掌握如何使用它。马汉,是的。我想让PHP在这一点上停止循环。@TingPing从阅读PHP中使用的概念开始,这个问题显然非常神秘,因为您不熟悉PHP语言。为什么不直接循环$string数组?您的意思是停止执行吗?我不熟悉PHP语法。试着掌握如何使用它。马汉,是的。“我希望PHP在这一点上停止循环。@TingPing从阅读PHP中使用的概念开始,这个问题显然非常神秘,因为您不熟悉PHP语言。我不想计算行数。我有一个文本文件,其中包含我需要填充到html格式表中的数据。所以,我尝试使用while循环来获取文本文件中的所有内容,而不是计算行数。我有一个文本文件,其中包含我需要填充到html格式表中的数据。因此,我尝试使用while循环来获取文本文件中的所有内容。