读取txt文件,但不要';t显示最后一行


read txt file but don't display last line

除了最后一行之外,是否可以读取txt文件?最后一行是空行,给出了一个分页的"空白"页面

<!-- the input fields that will hold the variables we will use -->
      <input type='hidden' id='current_page' />
    <input type='hidden' id='show_per_page' />

<div id='content'> 

    <?php
$file = fopen("admin/events/events.txt", "r");
while(!feof($file)){
    $line = fgets($file);
$line = str_replace("<div data-role='day' data-day='", "<b><u>Datum:</b></u> ", $line);
$line = str_replace("'><div data-role='event' data-name='<h1>", " <br><b><u>Event:</b></u> ", $line);
$line = str_replace("' data-start='", " <br><b><u>Start:</b></u> ", $line);
$line = str_replace("' data-end='", " <br><b><u>Einde:</b></u> Tot ", $line);
$line = str_replace("' data-location='", " <br><b><u>Locatie:</b></u> ", $line);
$line = str_replace("</h1>", " <br><b><u>Inhoud event:</b></u><br> ", $line);
$line = str_replace("'></div></div>", "", $line);
echo "<div class='event'>$line</div>"; 
}
fclose($file);
?>
</div>
<br>
<div id='page_navigation'></div>

所以它给了第1 2 3 4页,第123页充满了内容,但第4页是空白的,因为txt文件中的最后一行总是换行,因为我用PHP_EOL写入txt文件以创建换行。如何读取txt文件中除最后一行外的所有行?

empty可能不起作用,因为它不认为换行符为空。trim优先:

$line = trim($line);
if ($line != "") {
   // process line
}

不过,更好的方法是真正修复它,并使用一个像样的HTMLDOM解析器来读取文件。(似乎是HTML。)

既然你说没有其他空行,你肯定可以按照的思路做一些事情

// open file ...
while(!feof($file))
{
  $line = fgets($file);
  if( empty($line) ) continue;
  // ...
}

如果你有一行只有数字"0",这可能会给你一些奇怪的问题。参考所以你可能想用它来代替

  if ( $line === "" )

这有点难读,但更精确。

如果你必须有其他空行,但不是最后一行,你可以在下一次通过时输出这行

// open file ...
$next = fgets($file)
while(!feof($file))
{
  $line=$next;
  // ...
  $next = fgets($file);
}

为什么不再次检查是否到达文件结尾?

while(!feof($file)){
$line = fgets($file);
if (!feof($file))
{
//do what you need - it wasn't the last line
}
}

这样,即使最后一行不是空的

,您也会跳过它

如果它是空的,就忽略它!在读取下一行中的$line = fgets($file);之后,检查它是否为空,如果是,则仅为continue。您想继续,因为如果文件中有更多内容,而您正处于其中,您不想退出,您想继续到下一行。若它是最后一个空行,那个么while循环无论如何都会结束。

    while(!feof($file)){  
       $line = fgets($file);
       if(empty($line)) {
         continue;
       } else {
         $line = str_replace("<div data-role='day' data-day='", "<b><u>Datum:</b></u> ", $line);
         // ... end rest of your code
       }
    }

while(!feof($file)){$line=fgets($file);$line=str_replace("基准:",$line);$line=str_replace("'>","
事件:",$line);$line=str_replace("'数据开始='","
开始:",$line);$line=str_replace("'数据端='","
Einde:总计",$line);$line=str_replace("'数据位置='","
位置:",$line);$line=str_replace(","
内部事件:
",$line);$line=str_replace("'>",",$line);echo"$line";}…