[PHP] Anzahl Zeilen in einer Textdatei auslesen.

T-Flow

Scheidenpilz!
ID: 16924
L
24 August 2006
10.107
434
Hi!

Kleine kurze Frage. Mal angenommen ich habe eine Textdatei auf dem Server namens "sms-sprueche.txt". Mit welchem Befehl kann ich die Zeilenanzahl dieser Datei feststellen? Die Größe wird nämlich ständig geändert aber ich will angeben, wieviele Zeilen diese Datei halt momentan beim Aufrufen der Page hat.

Grüßle, Tobi
 
... Allerdings könnte man von der Annahme, dass die datei sms-sprueche.txt heißt darauf schließen, dass darin SMS-Sprüche gespeichert werden wozu eine Datenbank normalerweise deutlich besser geeignet wäre ;)
 
Funktioniert super, danke!

Datenbank is mir zu aufwändig, vor allem wird die Datei mit Excel erstellt, hochgeladen (notfalls überschrieben) und fertig.

Neue Frage: Wie überprüfe ich, ob eine Zahl gerade oder ungerade ist? Hab bei selfphp.de nichts gefunden, wobei ich das Suchen schon nach 10 Minuten abgebrochen hab...
 
neija mal abwarten, was passiert, wenn die Textdatei größer wird :biggrin:

neues Problem:
PHP:
$zahl=3;
if(($zahl%2)==0){
  echo "gerade";
}
else{
  echo "ungerade";
}
 
Danke, funktioniert alles! *juhu*

Die Datei hat über 800 Zeilen und bisher klappts...

Wieso sollte es irgendwann nimmer klappen?
 
Danke, funktioniert alles! *juhu*

Die Datei hat über 800 Zeilen und bisher klappts...

Wieso sollte es irgendwann nimmer klappen?

speicher... file liest die datei jedesmal komplett in den speicher. so schnell kommt man zwar nicht an die grenezen... um ne kritische masse zu erreichen brauchs schon ein bissel mehr als 800zeilen.

um das ganze zu verbessern könntest du nen buffer einbauen... zb könntest du in die erste zeile die anzahl der zeilen rein schreiben, das wäre dann resourcen schonender. oder ganz automatisch kannst du nen extra datei anlegen in die du die anzahl der zeilen reinschreibst per script... und bei jedem aufruf prüfst du ob die datei mit der zeilen anzahl neuer ist als die spruch datei. wenn sie älter sein sollte leist du die zeilen anzahl aus und schreibst sie in die datei...
 
Bissel arg umständlich alles, oder? Vor allem ist meine Excel Datei so angelegt, dass eine Kopfzeile die Spalten beschreibt und ab Zeile 2 gehts los mit den Daten. Und per Hand trag ich bestimmt keine Zeilenanzahl irgendwo ein.

Genau wie das "gerade oder ungerade Zahl". Dachte, dafür gibts nen Befehl, der dann true oder false liefert.
 
Bissel arg umständlich alles, oder? [...]
Genau wie das "gerade oder ungerade Zahl". Dachte, dafür gibts nen Befehl, der dann true oder false liefert.

Falls sich das ganze vergrößern sollte und du genug Geld hast ist das auch kein Problem. Nur ist es idR besser, wenn der Computer beim Ausführen weniger "denken" muss, als ich beim Programmieren (solange es sich im Rahmen hält - ich schreibe meinen Code deswegen auch keinen Assemblercode).

Und da hält es sich denke ich im Rahmen, zumal das ja wirklich nur ein paar Zeilen Code wären, zumindest die Anzahl der Einträge nur wenn es nötig ist zu berechnen.
CSV in die Datenbank ist übrigens auch überhaupt kein Problem ;)
 
Doch ist es, weil ich kein Bock habe, ständig die abgeänderte CSV-Datei in die Datenbank zu importieren, weil das Script eh nur privat für mich ist und nicht für Seitenbesucher. Naja, jetzt funzt alles und damit basta :-D
 
Ich hätte die Möglichkeit, aber keine Lust das einzurichten und außerdem, was solls bringen? Ich alleine greife auf diese eine Datei zu, die ich in Excel mache... was soll ich das dann noch in eine MySQL DB reinladen? Außerdem ändern sich einige Einträge ständig... ich muss im Excel nur kurz hochscrollen, wenn ich was Bestimmtes suche und dann lad ich die CSV aufn Server und wenn ich mal net daheim bin und was aus der DB wissen muss, kann ichs mir einfach anzeigen lassen...
 
Nur mal so als kleines Beispiel:
1 Datei 3 MB kannst du nimmer Uploaden auf normalen Server weil die maximale Uploadgröße überschritten wird(gilt nicht per ftp, nur per php Upload), aber die gleiche Datenmenge hat in einer DB maximal 1 MB Speicherplatz.
Auerdem kannst du auch auf die DB zugreifen wenn du nicht daheim bist, du brauchst dir nur eine Php Datei programmieren. In dieser Datei kannst du Datensätze einpflegen, löschen, editieren, statistiken(Übsichten) ausgeben lassen uvm. Aber ok mich gehts nix an. Ist natürlich deine Sache aber ich sehe in einem DBMS nur vorteile. Auch in Sachen Geschwindigkeit und Handling der Daten.
 
Also meine CSV-Datei ist mit ca. 1.000 Zeilen grade mal 60 KB groß. Hochgeladen werden sie per FTP.
1 MB werde ich also höchstwahrscheinlich nie erreichen, da wirklich alles per Hand eingetippt wird. Außerdem kann ich nicht immer online sein, wenn ich die DB editiere. Und den Aufwand für mich alleine nochmal eine PHP-Benutzeroberfläche anzulegen... wozu? Mit Excel bin ich viel schneller im Editieren, abspeichern, 1-click-ftp-upload und ab und zu mal einen Suchbegriff eingeben zum Online-Nachschauen.

Viel zu umständlich für meine Zwecke also.
 
Nur mal so als kleines Beispiel:
1 Datei 3 MB kannst du nimmer Uploaden auf normalen Server weil die maximale Uploadgröße überschritten wird(gilt nicht per ftp, nur per php Upload), aber die gleiche Datenmenge hat in einer DB maximal 1 MB Speicherplatz.

na so ein quatsch... wenn du ne csv datei importierst dann ist die in der datenbank ~genau so groß. (ausser die datenbank unterstützt komprimierte tabellen). und 3mb mit sms sprüchen? ne sms hat maximal 160zeichen... also 160byte. das wären dann kanpp 20000sprüche... und da nicht jeder spruch 160zeichen lang ist kannste minimal noch mal 1/3 drauf schlagen. also wären das dann 30000sms sprüche... na dann guten nacht.
 
na so ein quatsch... wenn du ne csv datei importierst dann ist die in der datenbank ~genau so groß.

auch wieder nicht korrekt, es fallen ja noch andere DFatenmengen an wie das speichern der Struktur, die Speicherung der Indizes (wenigstens der unsichtbare auto-increnment Primary-Key) sowie der Overhead für die Speicherung des Datentyps.

Trotzdem ist eine DB die weit bessere Wahl. Man könnte sich ja mal SQLite ansehen, wenn es schon keine "richtige" Datenbank sein soll.
 
daher hab ich auch geschrieben ~genau so groß. mir ist klar dass die datenbank nen müh größer sein wird... aber das hält sich in grenzen. selbst eine csv datei besteht nicht nur aus nutzdaten.