Ankündigung

Einklappen
Keine Ankündigung bisher.

csv datei exploden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • csv datei exploden

    hallo,

    ich stehe jetzt schon seit stunden vor dem selben problem, ich habe hier verschiedene csv dateien um gewandelt werden sollen. und ich bin die sache so angegangen, dass ich mit explode die datei zerlegt habe (beistriche als trennzeichen).

    aber jetzt stehe ich vor dem problem, dass gewisse felder die selber eine beistrich enthalten (dadurch starten sie mit ," und enden mit ",)

    hier mein code:
    Code:
    // convertiert thunderbird csv dateien in das standard outlook format
    function thunderbirdToOutlook($csv_string)
    {
    	$debug = "on";
    	
    	$status = "NOT CLEAN";
    	
    	// beistriche aus dem datensaetzen entfernen
    	while($status <> "CLEAN")
    	{
    		$cleanString = removeCommas($csv_string);
    		
    		// pruefen ob noch beistriche im den datensaetzen vorhanden sind
    		$text = $cleanString;
    		$suche = ',"';
    		$search = stristr($text,$suche);
    		
    		if($search == "")
    		{
    			$status = "CLEAN";
    			echo("huhu");
    		}
    		else
    		{
    			$status = "NOT CLEAN";
    			echo("nooo");
    		}
    		
    	}
    	
    	$codeExplode = explode(',', $cleanString);
    
    	$vorname = $codeExplode[0];
    	$nachname = $codeExplode[1];
    	$anzeigename = $codeExplode[2];
    	$spitzname = $codeExplode[3];
    	$emailAdresse1 = $codeExplode[4];
    	$emailAdresse2 = $codeExplode[5];
    	$telefonGeschaeftlich = $codeExplode[6];
    	$telefonPrivat = $codeExplode[7];
    	$faxGeschaeftlich = $codeExplode[8];
    	$pager = $codeExplode[9];
    	$mobilTelefon = $codeExplode[10];
    	$strassePrivat1 = $codeExplode[11];
    	$strassePrivat2 = $codeExplode[12];
    	$ortPrivat = $codeExplode[13];
    	$regionPrivat = $codeExplode[14];
    	$PostleitzahlPrivat = $codeExplode[15];
    	$LandPrivat = $codeExplode[16];
    	$strasseGeschaeftlich1 = $codeExplode[17];
    	$strasseGeschaeftlich2 = $codeExplode[18];
    	$ortGeschaeftlich = $codeExplode[19];
    	$regionGeschaeftlich = $codeExplode[20];
    	$postleitzahlGeschaeftlich = $codeExplode[21];
    	$landGeschaeftlich = $codeExplode[22];
    	$anrede = $codeExplode[23];
    	$abteilung = $codeExplode[24];
    	$firma = $codeExplode[25];
    	$webseiteGeschaeftlich = $codeExplode[26];
    	$webseitePrivat = $codeExplode[27];
    	$leer1 = $codeExplode[28];
    	$leer2 = $codeExplode[29];
    	$leer3 = $codeExplode[30];
    	$benutzer1 = $codeExplode[31];
    	$benutzer2 = $codeExplode[32];
    	$benutzer3 = $codeExplode[33];
    	$benutzer4 = $codeExplode[34];
    	$notiz = $codeExplode[35];
    	
    	if($debug == "on")
    	{
    		echo("Vorname: ".$vorname."[/b]
    ");
    		echo("Nachname: ".$nachname."[/b]
    ");
    		echo("Anzeige Name: ".$anzeigename."[/b]
    ");
    		echo("Spitzname: ".$spitzname."[/b]
    ");
    		echo("Email 1: ".$emailAdresse1."[/b]
    ");
    		echo("Email 2: ".$emailAdresse2."
    ");
    		echo("Telefon gesch&auml;ftlich: ".$telefonGeschaeftlich."
    ");
    		echo("Telefon privat: ".$telefonPrivat."
    ");
    		echo("Fax gesch&auml;ftlich: ".$faxGeschaeftlich."
    ");
    		echo("Pager: ".$pager."
    ");
    		echo("Mobiltelefon: ".$mobilTelefon."
    ");
    		echo("Strasse 1 privat: ".$strassePrivat1."
    ");
    		echo("Strasse 2 privat: ".$strassePrivat2."
    ");
    		echo("Ort privat: ".$ortPrivat."
    ");
    		echo("Region privat: ".$regionPrivat."
    ");
    		echo("Postleitzahl privat: ".$PostleitzahlPrivat."
    ");
    		echo("Land privat: ".$LandPrivat."
    ");
    		echo("Strasse 1 gesch&auml;ftlich: ".$strasseGeschaeftlich1."
    ");
    		echo("Strasse 2 gesch&auml;ftlich: ".$strasseGeschaeftlich2."
    ");
    		echo("Region gesch&auml;ftlich: ".$regionGeschaeftlich."
    ");
    		echo("Postleitzahl gesch&auml;ftlich: ".$postleitzahlGeschaeftlich."
    ");
    		echo("Land gesch&auml;ftlich: ".$landGeschaeftlich."
    ");
    		echo("Anrede: ".$anrede."
    ");
    		echo("Abteilung: ".$abteilung."
    ");
    		echo("Firma: ".$firma."
    ");
    		echo("Webseite gesch&auml;ftlich: ".$webseiteGeschaeftlich."
    ");
    		echo("Webseite privat: ".$webseitePrivat."
    ");
    		echo("Leer 1: ".$leer1."
    ");
    		echo("Leer 2: ".$leer2."
    ");
    		echo("Leer 3: ".$leer3."
    ");
    		echo("Benutzer 1: ".$benutzer1."
    ");
    		echo("Benutzer 2: ".$benutzer2."
    ");
    		echo("Benutzer 3: ".$benutzer3."
    ");
    		echo("Benutzer 4: ".$benutzer4."
    ");
    		echo("Notiz: ".$notiz."
    ");
    		echo("<hr>");
    	}	
    }
    
    // entfernt beistriche aus dem text
    // TODO: diese funktion mit einer while schleife ausfuehren damit wirklich alle beistriche entfernt werden
    function removeCommas($csv_string)
    {
    	$debug = "on";
    	
    	// string bei ," trennen
    	$stringToCut = explode(',"', $csv_string);
    	
    	// string for ,"
    	$stringBefore = $stringToCut[0];
    	
    	// string nach ",
    	$i_count = count($stringToCut);
    	$i_counter = 1;
    	for ($i=0; $i<=$i_count; $i++)
    	{
    		$stringMiddle = explode('",', $stringToCut[$i_counter]);
    		$stringConvert = str_replace (',', '', $stringMiddle[0]);
    		
    		$stringMerge = $stringConvert.','.$stringMiddle[1];
    		
    		$stringAfter = $stringAfter.','.$stringMerge;
    		
    		$i++;
    		$i_counter++;
    	}
    	
    	$stringReady = $stringBefore.$stringAfter;
    	
    	if($debug == "on")
    	{
    		echo("String Ready: ".$stringReady."
    ");
    		
    		$count = count($stringToCut);
    		echo("Array Teile: ".$i_count."
    ");
    	}
    	
    	return $stringReady;
    }
    
    $csvFile = file ('/tmp/thunderbird_test2.csv');
    
    // Durchgehen des Arrays und Anzeigen des HTML Source inkl. Zeilennummern
    foreach ($csvFile as $line_num => $csvFileline)
    {
    	thunderbirdToOutlook($csvFileline);
    }
    aber irgendwie geht das nicht ganz

  • #2
    Der Beitrag wurde verschoben, wegen...
    ... Postings im falschen Forum.

    Bemerkung:
    Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

    moved to PHP - Anfänger

    Ich würde fgetcsv() benutzen, das macht sowas automatisch.
    http://de.php.net/fgetcsv
    mod = master of disaster

    Kommentar


    • #3
      > thunderbirdToOutlook()

      ..das sollte ich in meine Signatur übernehmen! Geil!!!

      Kommentar

      Lädt...
      X