Datei auslesne und filtern
Frank
- php
Seid gegrüßt!
Ich habe ein PHP-Skrip verfasst, das eine text-Datei ausliest. So weit so gut.
Jetzt möchte ich aber die ersten und letzten beiden Zeilen nicht ausgeben.
Mit den ersten beiden war das kein Problem. Habe eine variable hochzählen lassen, und die ausgabe erst gestartet, sobald die variable=2 war.
Doch die letzten beiden ???
Danke für Eure Hilfe
Frank
Huhu Frank
Mit den ersten beiden war das kein Problem. Habe eine variable hochzählen lassen, und die ausgabe erst gestartet, sobald die variable=2 war.
Doch die letzten beiden ???
ich nehme mal an, dass Du die Datei per file einliest.
Dann erhältst Du ein Array mit allen Zeilen Deiner txt-Datei.
Dann benutz doch array-Funktionen um einzelne Elemente zu entfernen.
(z.B. array_pop,array_shift)
Viele Grüße
lulu
Mensch lulu, Danke...! Ich habe gar nicht an die file-Funktion gedacht...na klar!!
Aber wo ich schon eine PHP-xpertin vor mir hab: Wie löse ich folgendes Problem:
Ich habe eine Textarea, in die der user html-code eingeben soll.
Wenn allerdings Anführungszeichen ("""") eingegeben werden, so wird in die Datei ("""") geschrieben! Das is allerdings a bissl blöd.
What to do ??
Thanx
Wenn allerdings Anführungszeichen ("""") eingegeben werden, so wird in die Datei ("""") geschrieben! Das is allerdings a bissl blöd.
wenn du es wieder ausgiebst einfach ein stripslashes() auf die Variable.
lg
Ludwig
Hi!
Jetzt möchte ich aber die ersten und letzten beiden Zeilen nicht ausgeben.
Dafür behälst Du am besten 2 Zeilen im Puffer (sprich in Variablen) und gibst erst die erste der beiden aus, wenn im nächsten Schleifendurchlauf nicht EOF ist.
Also ungefähr so:
$line1=$line2="";
$nr=1;
while(nicht eof)
{
if($nr>2)
{
echo $line1;
$line1 = $line2;
$line2 = zeile lesen;
}
$nr++;
}
Damit müsste eine Zeile erst ausgegeben werden, wenn der Lesevorgang schon zwei Zeilen weiter ist (wenn nicht noch irgendwo ein Fehler steckt ;-).
VG->Cologne
Simon
Hi!
Jetzt möchte ich aber die ersten und letzten beiden Zeilen nicht ausgeben.
[.....]
warum net gleich innerhalb der for() schleife ein:
if(($i>=2) || ($i<count($array)-1){
echo "";
}
lg
Ludwig
statt oder natürlich und.. sorry
if(($i>=2) && ($i<count($array)-1){
echo "";
}
lg
Ludwig
Hi!
warum net gleich innerhalb der for() schleife ein:
Weil ich nach seinem Posting nicht davon ausgegangen bin, dass er die file-Funktion benutzt und somit ein Array vorliegen hat (wofür bei großen Dateien ja immer noch viel für spricht).
VG->Cologne
Simon
Hi!
warum net gleich innerhalb der for() schleife ein:
Weil ich nach seinem Posting nicht davon ausgegangen bin, dass er die file-Funktion benutzt und somit ein Array vorliegen hat (wofür bei großen Dateien ja immer noch viel für spricht).
Definiere "großen dateien"
ne CVS datei bis 10MB klopf ich relativ schnell mit file rein. (und 10MB text ist viel :)
hab mal vor nem jahr das Forumsarchiv in ne datenbank geschaufelt. auch mittels file(), daß waren glaub ich um die 160MB. die max_execution_time auf 10minuten hoch und schon gings durch :)
Ludwig