Buslätt....
Gör bara en loop som går igenom varje rad i filen.
Läs in hela raden och gör om den med explode("|",$rad);
Gör insertsatser utav det hela
slut på loop...
njut av den ökade hastigheten och flexibiliteten
7 svar · 222 visningar · startad av mikaeled
Hej,
Jag använder nu en vanliga .log filer för ett system med omkring 20 000 användare (filer).
Nu skulle jag vilja göra ett script som läser dessa log-filer och skapar rader i mysql databasen.
logfilerna är uppbyggda såhär och de är numrerade men vissa nummer är borta, pga att de har tagit bort sitt konto hos oss:
namn | email | etc | etc
Vore mycket tacksam för hjälp!
Buslätt....
Gör bara en loop som går igenom varje rad i filen.
Läs in hela raden och gör om den med explode("|",$rad);
Gör insertsatser utav det hela
slut på loop...
njut av den ökade hastigheten och flexibiliteten
Hej,
Jag är inte så duktig på loopar etc. Skulle inte ngn vilja skriva koden?
Vore super tacksam
/Mikael
Ett litet exempel:
<?
$db = mysql_connect ("localhost", "anvandare", "losenord") OR DIE (mysql_error());
mysql_select_db("databas",$db) OR DIE (mysql_error());
$dir=opendir("/home/minhamkatalog/");
while($fil = readdir($dir)) {
$typ=substr($fil,0,-4);
if ($typ==".log") {
$array = readfile($fil);
$array=explode ("|", $array);
mysql_query("INSERT INTO tabell (namn, osv, osv) VALUES ('$array[0]','$array[1]','$array[2]')") OR DIE (mysql_error());
}
}
}
closedir($dir);
mysql_close($db);
?>
Har ej testats. Måste antagligen köras via kommandoraden om inte scripttimeouten i php.ini har ändrats.
Eller om du vill slippa att koda och loopa:
LOAD DATA LOCAL INFILE 'filnamn.log' INTO TABLE tabellen TERMINATED BY '|';
Skapa tabellen först.
Aha, det var flera filer, så det blir väl en loop ändå då om du har ett större antal filer, men frågan funkar juh.
/Al
[Redigerat av Al den 20 feb 2001]
Hej,
koden som en kille ovanför skrev fungerarade inte. Det blev ngt fel.
Ni andra kan ju försöka debugga den så att det funkar. Vore mycket tacksam!
vill inte låta elak eller nåt sånt men hrrm du är admin för ett system med ca 20 000 användare och du vet inte ens hur man loopar
Hej,
Det stämmer. Förut hade jag tillgång till en programmerare men han är tyvärr ute på en jordenruntresa.
Nu har jag fått intresset att byta från flat-file till mysql samt att utveckla tjänsten ännu mer.
Jag skulle gärna vilja ha fungerande kod, så jag vore tacksam om du kunde kika på koden ovan!
MVH
-Mikael