Guten Morgen,
ich versuche gerade einen String in seine Bestandteile zu zerlegen und in die Datenbank zu schreiben. Der String sieht wie folgt aus:
Fr,12.06.2009,06,28,24,875,SPS12 ,S->,MFR1SA12LI010908568807VBBEC ********************
Fr,12.06.2009,06,28,25,062,SPS12 ,<-E,SA12MFR1LU011207220535AB02**********************
Fr,12.06.2009,06,28,25,312,SPS12 ,<-E,SA12MFR1LQ011007220646**************************
Fr,12.06.2009,06,28,25,406,SPS12 ,<-E,SA12MFR1LT011007220646**************************
Fr,12.06.2009,06,28,26,093,SPS12 ,<-E,SA12MFR1LQ011107220538**************************
Fr,12.06.2009,06,28,26,109,SPS12 ,<-E,SA12MFR1LU011007220645AB02**********************
Fr,12.06.2009,06,28,26,140,SPS12 ,S->,MFR1SA12LI011107220538****C ********************
bisher habe ich es geschafft alles was "," getrennt ist zu zerlegen und mit folgendem Script in die Datenbank zu schreiben:
<?php
error_reporting(E_ALL);
function daten_import($source)
{
$source = fopen($source, "rb");
$db = mysqli_connect("localhost","root","start","","3306") or die("Keine Verbindung zur Datenbank!");
$ergebnis=mysqli_query($db, $sql);
$i=0;
if ($source)
{
while (false !== (!feof($source)))
{
$ipteiler = fgets($source);
list($t1, $t2, $t3, $t4, $t5, $t6, $t7, $t8, $t9) = explode(",", $ipteiler);
$ins = ("replace into telegramme.`test`
values('".$t1."','".$t2."','".$t3.":".$t4.":".$t5.":".$t6."','".$t7."','".$t8."','".$t9."');");
$i++;
echo ".";
$ergebnis=mysqli_query($db, $ins);
//$muell_loeschen=("delete from telegramme.`daten` where richtung not like 'S->' and richtung not like '<-E'");
//$ergebnis=mysqli_query($db, $muell_loeschen);
}
}
else
{
fclose($source);
return false;
}
echo "fertig! von $source wurden $i Zeilen in die Datenbank geschoben<br>";
fclose($source);
return true;
}
// Hier ist das Script durchgelaufen
$_filenames = glob('G:\xampp\htdocs\Kartonwege\Test\*.csv');
if (is_array($_filenames)) ## es würde auch reichen "if ($filenames)", aber das ist schmuddleig
{
foreach($_filenames as $source)
{
$ready = daten_import($source);
if ($ready)
{
rename("$source","$source.sav");
echo "$source wurde fehlerfrei eingelesen<br>";
}
else
{
echo "<p>$source konnte nicht fehlerfrei eingelesen werden!</p>";
}
}
}
?>
was ich jetzt nicht hin bekomme ist, den letzten String "$9" der immer genau 48 Zeichen lang ist, an bestimmten stellen weiter zu zerlegen.
Für ein wenig Hilfe würde ich mich tierisch freuen.
Gruß aus Bremen
Olaf