Textdatei in MySQL - Zeilenumbrücke entfernen

basti84

Grünschnabel
Textdatei in MySQL - Zeilenumbrüche entfernen

Hallo,

ich bin dabei, eine Textdatei (MSSQL-Dump) in eine MySQL-Datenbank einzulesen. Über den phpMyAdmin funktioniert das auch einwandfrei. Wollte den Import daher zuerst mit der MySQL-Funktion 'LOAD DATA INFILE' machen. Da mein Provider das allerdings nicht erlaubt, hab ich es jetzt so probiert:

Das klappt auch, allerdings, werden die Zeilenumbrüche jeweils in die letzte Zeile geschrieben (\r\n).
Wie kann ich das verhindern. Hab schon 'str_replace' ausprobiert, bin aber PHP-Neuling.

Danke im Vorraus.

PHP:
include ('inc_db_connect.php');

# Function: Array erzeugen
function Read_Dump_File($Input_File, $Delimiter){
    $Output    = array(0 => array(0));
    $i         = 0;
    $FileArray = file($Input_File);
    
    # Zeilenweise einlesen und durch Explode Werte in Array schreiben
    foreach($FileArray as $val){ $Output[$i++] = explode($Delimiter, $val);    }
    
    return $Output;
}  

# Function: Tablle leeren
function truncate_table($dTable){
    mysql_query("DELETE FROM $dTable WHERE 1");
    } 
 


# ------------------------------------------------------------------------------
# Tabelle WEB_DOCUMENT_NEW
#-------------------------------------------------------------------------------

$table = $td;
$infile = $fd;

# Tabelleninhalt löschen
truncate_table($table);
  
# Dump auslesen und Array erzeugen
$Data = Read_Dump_File($infile,'    ');

# Array in Tabelle schreiben
foreach($Data as $key => $val){
    mysql_query("INSERT INTO `$table` SET `AIMKEY` = '$val[0]', `IDENT` = '$val[1]', `REVISION` = '$val[2]', `SHORT_DESC` = '$val[3]', `FILE_NAME` = '$val[4]', `FILE_EXT` = '$val[5]', `FILE_TYPE` = '$val[7]';"); 
}
 
Zuletzt bearbeitet:
Habs jetzt selber herausgefunden:

beim Exploden hab ich noch die Trim() Funktion dazugesetzt.
Was so ein PHP-Handbuch nicht als bewirken kann... :rtfm:

PHP:
foreach($FileArray as $val){ $Output[$i++] = explode($Delimiter, trim($val));
 
Zurück