Textdatei ab der 2. Zeile auslesen?

Dr Dau

ich wisch hier durch
Hallo!

Ich will eine Textdatei (Datenbank) ab der 2. Zeile auslesen weil in der 1. Zeile die Feldnamen stehen.
Ich weiss jedoch nicht wie dass geht. :(
PHP:
<?php
$datei = fopen("datenbank.txt", "r");
while (!feof($datei))
{
$zeile = fgets($datei, 512);
$eintrag = explode(";", trim($zeile));
?> 
<tr>
<td valign="top" width="95" bgcolor="#C0D2FE" style="border-right:1px solid black; border-top:1px solid black;">Nickname</td>
<td valign="top" bgcolor="#C0D2FE" style="border-top:1px solid black;"><a href="mailto:<?php echo $eintrag[3]; ?>" title="eMail"><?php echo wordwrap($eintrag[2],90,"<br>",1); ?></a>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Vorname</td>
<td valign="top"><?php echo wordwrap(basename($eintrag[0]),80,"<br>",1); ?>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Nachname</td>
<td valign="top"><?php echo wordwrap($eintrag[1],80,"<br>",1); ?>&nbsp;</td>
</tr>
<?php
} 
fclose($datei);
?>
Gruss Dr Dau
 
ich weiß nicht, ob es eine elegantere Lösung gibt, aber du kannst doch
in der While-Schleife einen Zähler benutzen. Steht der auf eins springst du
zur nächsten Zeile, ansonsten gibst du sie aus.

Pseudo-Code:

$i = 1;
while (!feof($datei)) {
{
if ($i <= 1) {
continue;
}

$zeile = fgets($datei, 512);

$i++;
}
 
Ich würde das ganze nicht mit [phpf]fopen[/phpf] sondern mit [phpf]file[/phpf] bzw. noch besser mit [phpf]file_get_contents[/phpf] lösen :)
Das Ergebnis liest du mit einer For-Schleife aus!
PHP:
$file = file_get_contents("datei");
for ($i=1;$i<=count($file)-1;$i++) {
    #Ausgabe der Zeile ($file[$i])
}
 
Hallo!

@Operator_Jon, sowohl mit file() als auch mit file_get_contents() bleibt die Seite leer.

@yson, bei deinem Vorschlag zeigt er mir ein Parse error in Zeile 43.

PHP:
<?php
$datei = fopen("datenbank.txt", "r");
$i = 1;
while (!feof($datei)) {
{
if ($i <= 1) {
continue;
}
$zeile = fgets($datei, 512); }
$i++;
}
$eintrag = explode(";", trim($zeile));
?> 
<tr>
<td valign="top" width="95" bgcolor="#C0D2FE" style="border-right:1px solid black; border-top:1px solid black;">Nickname</td>
<td valign="top" bgcolor="#C0D2FE" style="border-top:1px solid black;"><a href="mailto:<?php echo $eintrag[3]; ?>" title="eMail"><?php echo wordwrap($eintrag[2],90,"<br>",1); ?></a>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Vorname</td>
<td valign="top"><?php echo wordwrap(basename($eintrag[0]),80,"<br>",1); ?>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Nachname</td>
<td valign="top"><?php echo wordwrap($eintrag[1],80,"<br>",1); ?>&nbsp;</td>
</tr>
<?php
}	 // Parse error on line 43
fclose($datei);
?>
Ich wüsste nicht was daran verkehrt ist, Klammer zuviel? Habe ich auch schon ohne versucht, müssten aber ja eigentlich genauso viele geschlossene wie auch offene Klammern sein.

Gruss Dr Dau
 
du hättest meinen Code nicht einfach kopieren sollen. :-)

Code:
$datei = fopen("datenbank.txt", "r");
$i = 0;
while (!feof($datei)) {

  $i++;

  if ($i == 1) {
    continue;
  }
  $zeile = fgets($datei, 512);


  $eintrag = explode(";", trim($zeile));
?>
<tr>
<td valign="top" width="95" bgcolor="#C0D2FE" style="border-right:1px solid black; border-top:1px solid black;">Nickname</td>
<td valign="top" bgcolor="#C0D2FE" style="border-top:1px solid black;"><a href="mailto:<?php echo $eintrag[3]; ?>" title="eMail"><?php echo wordwrap($eintrag[2],90,"<br>",1); ?></a>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Vorname</td>
<td valign="top"><?php echo wordwrap(basename($eintrag[0]),80,"<br>",1); ?>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Nachname</td>
<td valign="top"><?php echo wordwrap($eintrag[1],80,"<br>",1); ?>&nbsp;</td>
</tr>
<?php
}     // Parse error on line 43
fclose($datei);
 
So wie ich dass sehe, brauche ich count().
Dass scheint auch dass zu sein was Du hier geschrieben hast @yson.
Nur die Beispiele auf der Seite bringen mich nicht wirklich weiter..... ich kann halt praktisch kein Englisch.

Wenn ich Google anschmeiss (textdatei + ab + zeile + auslesen + php) finde ich zwar haufenweise Treffer, nur haben alle das gleiche Problem und niemand scheint eine Lösung zu haben.
 
Zuletzt bearbeitet:
aber jetzt:
Code:
$datei = fopen("datenbank.txt", "r");
$i = 0;
while (!feof($datei)) {

  $i++;

  $zeile = fgets($datei, 512);
  $eintrag = explode(";", trim($zeile));

  if ($i <= 1) {
    continue;
  }

?>
<tr>
<td valign="top" width="95" bgcolor="#C0D2FE" style="border-right:1px solid black; border-top:1px solid black;">Nickname</td>
<td valign="top" bgcolor="#C0D2FE" style="border-top:1px solid black;"><a href="mailto:<?php echo $eintrag[3]; ?>" title="eMail"><?php echo wordwrap($eintrag[2],90,"<br>",1); ?></a>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Vorname</td>
<td valign="top"><?php echo wordwrap(basename($eintrag[0]),80,"<br>",1); ?>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Nachname</td>
<td valign="top"><?php echo wordwrap($eintrag[1],80,"<br>",1); ?>&nbsp;</td>
</tr>
<?php
}
fclose($datei);
 
Meine Lösung sollte aber auf jeden Fall funktionieren ;)
PHP:
$file = file_get_contents("datenbank.txt");
for ($i=1;$i<=count($file)-1;$i++) {
    $zeile = $file[$i];
    $eintrag = explode(";", trim($zeile));
    ?>
<tr>
<td valign="top" width="95" bgcolor="#C0D2FE" style="border-right:1px solid black; border-top:1px solid black;">Nickname</td>
<td valign="top" bgcolor="#C0D2FE" style="border-top:1px solid black;"><a href="mailto:<?php echo $eintrag[3]; ?>" title="eMail"><?php echo wordwrap($eintrag[2],90,"<br>",1); ?></a>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Vorname</td>
<td valign="top"><?php echo wordwrap(basename($eintrag[0]),80,"<br>",1); ?>&nbsp;</td>
</tr>
<tr>
<td valign="top" style="border-right:1px solid black;">Nachname</td>
<td valign="top"><?php echo wordwrap($eintrag[1],80,"<br>",1); ?>&nbsp;</td>
</tr>
    <?
}
/€dit:
Wenn ich Google anschmeiss (textdatei + ab + zeile + auslesen + php) finde ich zwar haufenweise Treffer, nur haben alle das gleiche Problem und niemand scheint eine Lösung zu haben.
Einfacher als der Code den ich dir jetzt gegeben habe kann es kaum sein :)
 
Zurück