是否可以读取除最后一行之外的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文件中的所有行,除了最后一行?
答案 0 :(得分:1)
empty
可能不起作用,因为它不会将换行视为空。 trim
首先:
$line = trim($line);
if ($line != "") {
// process line
}
更好的是,要真正修复它并使用一个像样的HTML DOM解析器来读取文件。 (它似乎是HTML。)
答案 1 :(得分:1)
既然你说没有其他空行,你肯定可以按照以下方式做点什么:
// open file ...
while(!feof($file))
{
$line = fgets($file);
if( empty($line) ) continue;
// ...
}
如果您的行号只有“0”,这可能会给您带来一些奇怪的问题。 Reference所以你可能想用它代替
if ( $line === "" )
这有点难以阅读,但更精确。
如果你必须有其他空行,而不是最后一行,你可以在下一次通过时输出该行。所以你这样做:
// open file ...
$next = fgets($file)
while(!feof($file))
{
$line=$next;
// ...
$next = fgets($file);
}
答案 2 :(得分:0)
为什么不再检查文件是否已到达?
while(!feof($file)){
$line = fgets($file);
if (!feof($file))
{
//do what you need - it wasn't the last line
}
}
这样即使它不是空的,你也会跳过最后一行
答案 3 :(得分:-1)
如果它是空的,就省略它!在下一行中阅读$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
}
}
而(!FEOF($文件)){
$ line = fgets($ file);
$ line = str_replace(“Datum:”,$ line);
$ line = str_replace(“'&gt;”,“
事件:”,$ line);
$ line = str_replace(“'data-start ='”,“
开始:”,$ line);
$ line = str_replace(“'data-end ='”,“
Einde: Tot”,$ line);
$ line = str_replace(“'data-location ='”,“
Locatie:”,$ line);
$ line = str_replace(“”,“ Inhoud event:
”,$ line);
$ line = str_replace(“'&gt;”,“”,$ line);
echo“$ line”;
}
...