Frage zur Machbarkeit und Sinn

schiese

Erfahrenes Mitglied
Hi,
angenommen ich habe eine Textdatei, die 20 MB groß ist und 10.000 Zeilen hat. Diese lese ich mit file() ein und möchte in der 3.635ten Zeile ein Wort suchen. Wird bei diesem Vorgang dann 20MB Traffic verbraucht oder nicht und schafft PHP das, oder hab ich da Probleme mit max_execution_time?

PS: Eine Datenbank ist nicht möglich

schiese
 
Afaik werden keine 20MB Traffic anfallen, weil das serverseitig passiert. Zu dem Rest: keine Ahnung...
 
Ok, danke. Das ist eigentlich auch schon das wichtigste. Wenn es anders wär, wären meine 20GB Traffic nämlich ratzfatz weg!
Aber was ist, wenn ich die 5000 Zeile lösche und die anderen wieder speicher?

schiese
 
Im Fall von großen Dateien solltest du mit der fopen()-Funktion arbeiten und jeweils nur den Dateizeiger bis zur gewünschten Zeile wandern lassen (siehe fseek()-Funktion). Diese musst du dir aber selbst suchen, da die fopen()-Funktion selber keine Zeilen kennt.
 
@ Gumbo: gucke mir das mal an. Aber in diesem Fall fällt ne Menge Traffic an, oder habe ich das falsch verstanden?

@ Sven: Habe grad mal nachgeguckt. Habe bei memory_limit 128 MB

schiese
 
Die liegt auf dem gleichen Server.
Ich sag mal, was ich machen will, vielleicht habt ihr ja einen vorschlag:
Habe die Textdatei mit tausenden Zeilen. Die zeilen sehen so aus:
Code:
user|--|passwort|--|name|--|email|--|und|--|so|--|weiter
Wenn ich jetzt die Zeile vom user Anna haben will, benutz ich ne foreach-Schleife, bis ich in der richtigen Zeile bin. Dann gib ich die Daten aus. Wenn sich der User Manfred abmelden will, lösche ich die entsprechende Zeile. Oder wenn der User Hugo sein PAsswort ändern will, überschreib ich es einfach.
Ich weiß nicht, ob ich nicht lieber mehrere Textdateien nehmen soll.

schiese
 
Als Traffic wird meist eigentlich nur Datenverkehr genannt, der durch Anfragen über das Internet verursacht wird. Demnach ist alles, was serverintern passiert, irrelevant.
 
Zurück