Arrays
Mika
- php
2 Vinzenz Mai2 David Tibbe0 Mika0 Tom0 Andreas Görtz0 Locking
Tom0 Andreas Görtz0 Tom1 Andreas Görtz0 Tom
Hi Zusammen,
ich habe eine Textdatei in der mehrere IP-Adressen stehen.
Diese möchte ich mit PHP einlesen und in einem Array abspeichern.
Ich habe schon das Befehlsverzeichnis von selfphp.de (Arrays) durchgelesen aber ich komm einfach nicht drauf.
$fp = fopen("ip_addresses.txt", "r");
while(($ch = fgets($fp, 15)) != false){
$array = array ($ch);
}
Gruß
Mika
Hallo Mika,
ich habe eine Textdatei in der mehrere IP-Adressen stehen.
Diese möchte ich mit PHP einlesen und in einem Array abspeichern.
wenn die IP-Adressen schön Zeile für Zeile stehen und sonst nichts in Deiner Datei steht, dann reicht Dir schon
$ip_arr = [link:http://www.php.net/manual/de/function.file.php@title=file]("ip_adresses.txt");
Näheres zu file() findest Du im verlinkten Handbuchabschnitt.
Freundliche Grüße
Vinzenz
Hallo Mika,
$array = array ($ch);
In jedem Schleifendurchlauf überschreibst du $array wieder mit dem neu gelesenen Inhalt. Willst du das wirklich? :) Definiere $array außerhalb der Schleife und füge die gelesene IP immer an.
Wirf auch einen Blick auf die Dateisystem-Funktionen, insbesondere file().
Grüße
David
Hi Vinzenz,
cool, vielen Dank für die Info.
Ich hätte nicht gedacht das es dafür schon eine fertige Funktion gibt:-)
Jetzt muss ich nur noch rausfinden wie ich die "Trim-Funktion" mit einbau um die Zeilenumbrüche wegzukriegen
Gruß
Mika
Hello,
Ich hätte nicht gedacht das es dafür schon eine fertige Funktion gibt:-)
Die ist auch nicht fertig, sondern äußerst rudimentär.
Jetzt muss ich nur noch rausfinden wie ich die "Trim-Funktion" mit einbau um die Zeilenumbrüche wegzukriegen
Dann überleg am besten auch gleich, wie du die Funktion multiuserfähig machst.
Es ist besser, Dur arbeitest folgendermaßen
http://www.php.net/manual/en/function.explode.php
Die Funktion file() ist nicht für den konkurrierenden Betrieb geeignet und sollte nur für Tests im isolierten Umfeld benutzt werden. Das trifft übrigens i.d.R. auf alle namensbasierten File-Funktionen zu. Nur die handle-basierten liefern eine relative Sicherheit.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hi Tom,
Jetzt muss ich nur noch rausfinden wie ich die "Trim-Funktion" mit einbau um die Zeilenumbrüche wegzukriegen
Dann überleg am besten auch gleich, wie du die Funktion multiuserfähig machst.
Warum sollte Mika das tun? Es geht doch hier um das Einlesen einer Datei.
- Datei öffen fopen()
- Datei exclusiv sperren flock()
Nochmal: es geht um das Einlesen der Datei. Wofür also ein exklusiver Lock?
Die Funktion file() ist nicht für den konkurrierenden Betrieb geeignet und sollte nur für Tests im isolierten Umfeld benutzt werden. Das trifft übrigens i.d.R. auf alle namensbasierten File-Funktionen zu. Nur die handle-basierten liefern eine relative Sicherheit.
also, ich weiß ja nicht, wie du darauf kommst. file_put_contents() bietet z.B. explizit an, durch Mitgabe eines Flags im dritten Parameter, einen exklusiven Lock zu setzen.
Gruß,
Andreas.
Hello,
Jetzt muss ich nur noch rausfinden wie ich die "Trim-Funktion" mit einbau um die Zeilenumbrüche wegzukriegen
Dann überleg am besten auch gleich, wie du die Funktion multiuserfähig machst.
Warum sollte Mika das tun? Es geht doch hier um das Einlesen einer Datei.
Ja, und darf das Einlesen durch andere Prizesse gestört werden, oder ist sicherzustellen, dass auch genau die Daten der Datei eines bestimmten Zeitpunktes abgebildet werden sollen?
Dürfen während des Leseprozesses durch andere Prozesse Änderungen an den Daten stattfinden, also vorne hat man dann die Daten von Zeitpunkt X und hinten die von Zeitpunkt X+dx ...?
- Datei öffen fopen()
- Datei exclusiv sperren flock()
Nochmal: es geht um das Einlesen der Datei. Wofür also ein exklusiver Lock?
siehe oben
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hi Tom,
Dürfen während des Leseprozesses durch andere Prozesse Änderungen an den Daten stattfinden, also vorne hat man dann die Daten von Zeitpunkt X und hinten die von Zeitpunkt X+dx ...?
ähm, dass das nicht passiert ist aber IMHO doch eher die Aufgabe des Dateisystems.
Nochmal: es geht um das Einlesen der Datei. Wofür also ein exklusiver Lock?
siehe oben
ein exklusiver Lock verhindert, dass ein anderer Prozess lesend auf die Ressource zugreift. Wozu sollte das hier nötig sein?
Gruß,
Andreas.
Hello,
Dürfen während des Leseprozesses durch andere Prozesse Änderungen an den Daten stattfinden, also vorne hat man dann die Daten von Zeitpunkt X und hinten die von Zeitpunkt X+dx ...?
ähm, dass das nicht passiert ist aber IMHO doch eher die Aufgabe des Dateisystems.
Nein!
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hi,
Nein!
das wird mir zu blöd.
*plonk*
Gruß,
Andreas.
Hello,
Nein!
das wird mir zu blöd.
*plonk*
Du bist unverschämt.
Wenn Du im Archiv mal nach dem Thema "Locking" gesucht hättest, könntest Du vernünftige Fragen zu dem Thema stellen. Genauso wahrscheinlich, wenn Du im PHP-Manual, in Google oder in Wikipedia nahgeschaut hättest.
http://suche.de.selfhtml.org/cgi-bin/such.pl?suchausdruck=File+Locking&lang=on&feld=alle&index_2=on&index_3=on&index_4=on&index_5=on&index_6=on&index_7=on&index_8=on&index_9=on&index_10=on&index_11=on&index_12=on&index_13=on&hits=500
http://www.google.de/search?hl=de&q=File+Locking&btnG=Suche&meta=lr%3Dlang_de
http://de.wikipedia.org/wiki/Locking
Wenn Dich das Thema wirklich interessiren würde, hättest Du nachgefragt und nicht nur gegengehalten.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Hi,
nur damit du nicht meinst, du seist im Recht:
Wenn Dich das Thema wirklich interessiren würde, hättest Du nachgefragt und nicht nur gegengehalten.
ich habe nachgefragt, sogar zwei Mal:
ein exklusiver Lock verhindert, dass ein anderer Prozess lesend auf die Ressource zugreift. Wozu sollte das hier nötig sein?
Nochmal: es geht um das Einlesen der Datei. Wofür also ein exklusiver Lock?
Du hast nicht darauf geantwortet.
Gruß,
Andreas.