php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.09.2006, 14:44  
Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 39
ypsie
Standard Brauche Script zum Löschen von Zeilen einer Datei

Liebe Leute!

Ich habe eine große Datei (6.5MB) mit Datensätzen wie:

"2.6.190.56","2.6.190.63","33996344","33996351","G B","United Kingdom"
"62.13.192.0","62.13.223.255","1041088512","104109 6703","AT","Austria"
"62.24.0.0","62.24.31.255","1041760256","104176844 7","DE","Germany"
"62.32.0.0","62.32.31.255","1042284544","104229273 5","CH","Switzerland"
"62.32.128.0","62.32.255.255","1042317312","104235 0079","PL","Poland"
...

Das geht ewig so weiter. Die Datei ist zu groß um sie in meine MySql Datenbank zu laden. (Gibt es einen Weg das zu tun? PhpMyAdmin schafft keine so großen Dateien).

Nun will ich ein kleines Script, dass die Datei öffnet und alle Zeilen bis auf die mit "AT" "DE" und "CH" herauslöscht.

Bitte um genaue Hilfe!
(Ich kann kaum bis nicht Php)

lg, julian
ypsie ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.09.2006, 14:54  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

naja..

PHP-Code:
$inhalt file("datei.txt"); // liest alles in ein array ein
$output = array();
foreach(
$inhalt As $i){
  
part explode(",",$i)
  if(
part['4'] != '"AT"' AND part['4'] != '"DE"' AND part['4'] != '"CH"'){ //Alternativ mit !in_array...
    
$output[] = $i;
  }

und dann den inhalt der datei löschen und $output einfügen...


So in etwa könnte man es machen!


mfg
Andi

PS: Script ist natürlich ungetestet und keine Komplettlösung... soll nur als ansatz dienen wie man es machen KÖNNTE... Ebenso wäre es vlt. einfacher das ganze auf DB umzustellen..
Dann müsstest halt das in der foreach schleife umändern, dass es ein insert vornimmt..
DER_Brain ist offline  
Alt 14.09.2006, 15:23  
Benutzer
 
Registriert seit: 18.08.2006
Beiträge: 61
Jogibär
Standard

Zitat:
Ich habe eine große Datei (6.5MB) mit Datensätzen
Das ringt MySQL noch nicht mal ein gequältes Lächeln ab.
Zitat:
Die Datei ist zu groß um sie in meine MySql Datenbank zu laden
Das glaube ich nicht. Per FTP auf den Server und dann vom Prinzip her das Script von DER_Brain benutzen

Jogibär
Jogibär ist offline  
Alt 14.09.2006, 15:56  
Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 39
ypsie
Standard

Zitat:
Zitat von DER_Brain
naja..

PHP-Code:
$inhalt file("datei.txt"); // liest alles in ein array ein
$output = array();
foreach(
$inhalt As $i){
  
part explode(",",$i)
  if(
part['4'] != '"AT"' AND part['4'] != '"DE"' AND part['4'] != '"CH"'){ //Alternativ mit !in_array...
    
$output[] = $i;
  }

und dann den inhalt der datei löschen und $output einfügen...


So in etwa könnte man es machen!


mfg
Andi

PS: Script ist natürlich ungetestet und keine Komplettlösung... soll nur als ansatz dienen wie man es machen KÖNNTE... Ebenso wäre es vlt. einfacher das ganze auf DB umzustellen..
Dann müsstest halt das in der foreach schleife umändern, dass es ein insert vornimmt..
Vielen Dank für die Hilfe. Leider kenne ich mich mit Php fast nicht aus und verstehe noch immer nicht ganz den Ablauf.

Die Datei habe ich hochgeladen. Wie schaffe ich es, dass das Programm die Datei öffnet, alle Daten in das array einliest, die Schleife durchlaufen lässt und anschließend wieder abspeichert?

Wäre wirklich genial und sehr nett, wenn du mir das genau sagen könntest!

lg und danke, julian
ypsie ist offline  
Alt 14.09.2006, 16:14  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Bei der Lösung von "DER_Brain" solltest du wissen, dass du dir damit wohl so zwischen 7 und 13 MB in den Speicher knallst, da du die komplette Datei in ein Array packst und dieses dann nochmal (abzüglich der gefilterten Datensätze) in ein zweites Array kopierst.

Besser Zeilenweise auslesen. Lies z.B. mal hier nach:

http://php-faq.de/q/q-datei-einfuegen.html

Basti
Basti ist offline  
Alt 14.09.2006, 16:20  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Bei der Lösung von "DER_Brain" solltest du wissen, dass du dir damit wohl so zwischen 7 und 13 MB in den Speicher knallst, da du die komplette Datei in ein Array packst und dieses dann nochmal (abzüglich der gefilterten Datensätze) in ein zweites Array kopierst.

Besser Zeilenweise auslesen. Lies z.B. mal hier nach:

http://php-faq.de/q/q-datei-einfuegen.html

Basti
Du hast natürlich (wie immer) recht...

Daran hab ich nicht gedacht!
Dann wohl eher was wie
while(!feof(...


oder?


mfg
Andi
DER_Brain ist offline  
Alt 14.09.2006, 16:24  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Zitat:
Zitat von DER_Brain
Du hast natürlich (wie immer) recht...
Yeah! Sowas will ich öfter hören! Täglich!

Basti
Basti ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
Datei an bestimmten Zeilen trennen? becks123 Server, Hosting und Workstations 5 07.01.2006 00:18
Einzelne Zeilen aus einer Txt Datei löschen scheibo PHP Tipps 2007 8 27.11.2005 21:34
[Erledigt] Zeilen aus .txt Datei löschen PHP Tipps 2005-2 23 18.10.2005 16:22
mysql - absätze zwischen verschieden zeilen inhalten Marc PHP Tipps 2005 15 15.04.2005 23:28
[Erledigt] Letzter zugriff von Datei anzeigen PHP Tipps 2005 13 17.01.2005 18:20
brauche einen fertigen Community script Beitragsarchiv 32 15.12.2004 17:36
Script zum ändern einer RDF Datei ! Brauche HILFE! PHP Tipps 2004-2 3 06.12.2004 09:21
Brauche Script Beitragsarchiv 11 27.11.2004 00:21
Brauche Dringend Hilfe bei einem Script !!! PHP-Fortgeschrittene 13 20.10.2004 23:17
Datei mit php erzeugen Stümper PHP Tipps 2004 4 12.10.2004 12:51
php und ftp PHP Tipps 2004 4 07.10.2004 09:58
brauche hilfe bei upload script... PHP Tipps 2004 2 14.08.2004 14:32
[Erledigt] Mit Java Programm eine XML Datei an php script übergeben PHP-Fortgeschrittene 5 19.07.2004 12:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2006/42092-brauche-script-zum-loeschen-von-zeilen-einer-datei.html, php zeile aus datei löschen, java zeile aus datei löschen, java zeile in datei löschen, java datei zeile löschen, java datei letzte zeile löschen, java zeile aus textdatei löschen, java textdatei zeile löschen, java zeilen aus datei löschen, java zeile löschen datei, java datei eine zeile löschen, script inhalt einer datei löschen, php script löschen text einer datei, php textdatei letzte zeile löschen, php script textdatei inhalt löschen, java letzte zeile einer datei löschen, zeilen aus image entfernen java, skript löschen von zeilen, java zeile in textdatei löschen, batch löschen von zeilen großer datensatz

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.