Läs in filen och loopa
Gör en explode på | i varje rad du kommer in och gör en INSERT med arrayen.
8 svar · 208 visningar · startad av Gislaved.net
Jag har en textfil där jag har lagrat en massa poster, en post på varje rad.
Varje rad ser ut ungefär såhär:
idnr|namn|nästa fält|ännu ett fält...|och så vidare....
Hur kan jag läsa av innehållet i varje fält till en variabel, för att kunna lagra datan i en MySql-databas?
Läs in filen och loopa
Gör en explode på | i varje rad du kommer in och gör en INSERT med arrayen.
Vad Nanne försöker berätta är följande:
$fp=fopen("textfilen.txt", "r");
if($fp) {
while(!feof($fp)) {
$s=fgets($fp, 30000);
$s=explode("|",$s);
mysql_query("insert into tabellnamn set fält1='$s[0]',fält2='$s[1]'");
}
}
Visst... det fungerar fint! Tack!
Om jag vill börja från slutet av filen istället... hur gör jag då?
Då får Du läsa in raderna i en array och sedan sortera den fallande rsort().
Och sedan göra en explode på varje array-post.
Okej... jag fick ordning på det till slut. Tack!
Det enda som krånglar är ett litet datumfält som jag vill ha i ett annat format. I textfilen står det som 25/9 - 2000 18:56, det vill säga dagen och månaden anges med en eller två siffror. Jag vill ha datumet i formatet 200009251856 om det går.
Jag använder substr för att plocka ut delar av datumet, men jag får det inte riktigt att stämma.
Använd följande funktion och anropa från loopen.
Function GetTime($indate){
$indate="25/9 - 2000 18:56";
$tmp=explode("/",$indate);
$day=$tmp[0];
$tmp=explode(" ",$tmp[1]);
$month=$tmp[0];
$year=$tmp[2];
$tmp=explode(":",$tmp[3]);
$hour=$tmp[0];
$minute=$tmp[1];
if(strlen($day)==1)
$day="0".$day;
if(strlen($month)==1)
$month="0".$month;
$outdate=$year.$month.$day.$hour.$minute;
return $outdate;
}
Anropa med:
$NewDate=GetTime("25/9 - 2000 18:56");
Tack woodi! Du är en ängel... :-)
explode-grejen var smart... den ska jag använda mig av fler gånger.
Hey, varsågod!