Olli1967: String zerlegen und in Datenbank speichern

Beitrag lesen

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