gelesene text-datei mit schleife!
mehmet
- php
Hallo Forum,
ich weiss nicht wo genau das Problem liegt!
Koenntet Ihr mir bitte weiterhelfen 8-)
Hier das Problem:
Leider wird die Text-Datei sooft gelesen wie Anzahl der Datensaetze.
Hier der Code:
(sorry, leider konnte ich den Code nicht farbig markieren 8-( )
[code lang=php]
<?php
echo "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>";
echo "<HTML>";
echo "<HEAD>";
echo "<TITLE>mehmet's Link-Liste</TITLE>";
echo "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>";
echo "<style type='text/css'>";
echo "<!--";
echo ".tab_titel { background-color: #ffFF00; } ";
echo ".tab_line { font-size: 12px; } ";
echo ".tab_zeile_0 { background-color: #99FF99; } ";
echo ".tab_zeile_1 { background-color: #E1E8F1; } ";
echo "";
echo "-->";
echo "</style>";
echo "</HEAD>";
echo "<BODY bgcolor=''>";
// Beginn Anzahl Datensätze
$zeilen = 0;
if ($datei = fopen("liste.txt","r")) {
while (!feof($datei)) {
if (fgets($datei,1048576)) {
$zeilen++;
}
}
}
echo "Anzahl Datensätze: ";
echo "<a href='liste.txt' target='cam'>";
echo $zeilen; // Anzahl Zeilen
echo "</a>";
fclose($datei);
// Ende Anzahl Datensätze
echo "<TABLE width='' border='0' cellpadding='' cellspacing='' class='tab_line'>";
echo "<TR class='tab_titel'>";
echo "<TD width=''>";
echo "<b>Link URL</b></TD>";
echo "<TD width=''><b>Link Name</b></TD>";
echo "</TR>";
$datei = fopen("liste.txt", "r") ;
while (!feof($datei)) {
$zeile = fgets($datei, 1048576) ;
$eintrag = explode("#", trim($zeile)) ;
// Auslesen jetzt abgeschlossen, es folgt das Einsetzen in die Tabelle
for($i=0; $i<=$zeilen;$i++) //$zeile Anzahl
{
echo "<tr class='tab_zeile_";
echo $i % 2;
echo "'>";
echo "<td>";
echo "<A href='";
echo $eintrag[0];
echo "'>";
echo basename($eintrag[0]);
echo "</A>";
echo "</TD>";
echo "<TD>";
echo $eintrag[1];
echo "</TD>";
echo "</TR>"; }
}
// Ende der while-Schleife
fclose($datei) ;
echo "</TABLE>";
echo "<a href='neu.htm'>neu Eintrag</a>";
?>
<?php echo "</BODY>"; ?>
<?php echo "</HTML>"; ?>
Herzlichen Dank im voraus
und Gruesse aus Köln
mehmet
Liege ich falsch oder sollte $i in den array-zähler??sonst wird ja zwar $i mal die zeile ausgegeben aber der wert drin wäre je stets der [0] bzw. [1]??
PS:die auskommentiert CSS ist absicht , oder?
Hallo Bleicher,
erstmal herzlichen Dank für deine Interesse.
Was muesste ich den nach deiner Meinung versuchen?
Ich habe extra $i<=$zeilen; eingedadelt, damit
$i verändert wird.
Versucht habe ich diverse Möglichkeiten:
$i<=$zeilen-1;
$i<=($zeilen+1)-$zeichen;
usw..
Gruss
mehmet
echo $begrüßung;
(sorry, leider konnte ich den Code nicht farbig markieren 8-( )
[ code lang=php ]
Der Abschluss mit [ /code ] (ohne die Leerzeichen) fehlt. Das ist in der Forumshilfe leider nicht eindeutig beschrieben.
Leider wird die Text-Datei sooft gelesen wie Anzahl der Datensaetze.
Große Teile der HTML-Ausgabe-Generierung hättest du weglassen können. Bitte mal ein kleines bisschen mitdenken und nicht so viel überflüssigen Code posten. Das verringert nur die Lust, ihn sich anzusehen.
Um den Fehler selbst zu finden, könntest du auch versuchen, das Problem mit so wenig wie möglich Code nachzustellen.
Hier mal ein Auszug der relevanten Stelle.
$datei = fopen("liste.txt", "r") ;
while (!feof($datei)) {
$zeile = fgets($datei, 1048576) ;
$eintrag = explode("#", trim($zeile)) ;
// Auslesen jetzt abgeschlossen, es folgt das Einsetzen in die Tabelle
Ist es nicht, es wird ja nur jeweils eine Zeile gelesen.
for($i=0; $i<=$zeilen;$i++) //$zeile Anzahl
$zeilen ist doch die Anzahl der Zeilen in der Datei (wurde weiter oben mühselig ermittelt).
{ ... }
}
// Ende der while-Schleife
Einrückungen des Codes, so wie ich es mit der for-Anweisung gemacht habe erhöhen die Lesbarkeit des Codes. Spare dabei nicht an der falschen Stelle. Weniger als zwei Leerzeichen sollten es nicht sein.
Man muss auch nicht jede HTML-Zeile einzeln mit echo ausgeben. Ein String kann auch über mehrere Zeilen gehen
echo 'Zeile1
Zeile2';
Außerdem gibt es noch die Heredoc-Syntax.
echo <<<TEXT
Zeile1
Zeile2
TEXT;
Darin können auch einfache und komplexe Variablen notiert werden, was im Anschluss des verlinkten Handbuchkapitels erklärt wird.
echo "$verabschiedung $name";