Kom ihåg mig?
Home Menu

Menu


Ett PHP problem

Ämnesverktyg Visningsalternativ
Oläst 2008-06-04, 15:11 #1
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
Jag skall läsa in ganska stora textfiler i PHP och sedan skyffla in dem i en databas.

Vilket sätt är snabbast ?
klein är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-04, 17:22 #2
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Hur mycket minne har PHP möjlighet att hantera? (memory_limit = ???)
Ta textfilen * 2 + lite overhead, och är textfilen under detta värde så borde det gå att läsa in hela filen, annars så skulle jag stycka filen (läs in filen i stycken i php).

Samt för att underlätta för databasen så lägg lite längre frågor åt mysql.
Tex: INSERT INTO table (`field1`, `field2`) VALUES ('value1', 'value2'), ('value1', 'value2') osv.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-04, 17:40 #3
tjo1 tjo1 är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2007
Inlägg: 18
tjo1 tjo1 är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2007
Inlägg: 18
Jag brukar göra sånt från prompten.
Har iofs vart färre än 100' rader endast än så länge.

hur stor är filen och hur stor swap har du?(man jan göra en extra swap)

/Tommy
tjo1 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-04, 18:10 #4
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
Citat:
Originally posted by Jonas@Jun 4 2008, 17:22
Hur mycket minne har PHP möjlighet att hantera? (memory_limit = ???)
Ta textfilen * 2 + lite overhead, och är textfilen under detta värde så borde det gå att läsa in hela filen, annars så skulle jag stycka filen (läs in filen i stycken i php).

Samt för att underlätta för databasen så lägg lite längre frågor åt mysql.
Tex: INSERT INTO table (`field1`, `field2`) VALUES ('value1', 'value2'), ('value1', 'value2') osv.
Men hur skriver man kodmässigt?
Drömmen är slurpa i sig hela textfile till minne och sedan kluva upp den i mindre segment och sedan stoppa in dem i databasen.
Filerna kan ha olika format, dvs ; eller \t sep. men dom skall ha samma format i databasen.
klein är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-04, 18:18 #5
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
MySQL kan ju importera filer direkt. Kanske kan vara något: http://dev.mysql.com/doc/refman/5.0/en/load-data.html
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-04, 18:24 #6
kers kers är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2004
Inlägg: 526
kers kers är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2004
Inlägg: 526
kolla in

http://www.modwest.com/help/kb.phtml?qid=253&cat=6
kers är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-04, 18:32 #7
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Kod:
<?php
$filename = 'file.txt';
$fp = fopen($filename, 'r');
$content = fread($fp, filesize($filename));
fclose($fp);

preg_match("#(;|\\t)\n#s", $content, $matches);
printf_r($matches);
?>
Och matcha in resultatet i databasen. (Koden är en "hint" och säkerligen ingen fungerande kod.)

Annars är nog WizKid's förslag mest optimalt om det handlar om CSV data, då mysql har inbyggt stöd för detta.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 04:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017