Outlook-Kontakte importieren

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

  • Outlook-Kontakte importieren

    Hallo, hab das Problem dass ich Outlook-Kontakte (die vorher in eine Textdatei exportiert wurden) wieder importieren muss.


    Jetzt weiß ich leider nicht wie ich die Felder/Kategorien trennen soll, da die Daten entweder:

    "xxx", "xxx"
    oder: ,,,,,
    oder: "xxxxx, xxxxx"

    Formate haben.

    Könnte es in den Daten keine Kommas geben wäre das ja kein Problem, dannn könnte ich explode(",", ...) nehmen.

    und hätten ALLE Leerfelder Gänsefüßchen könnte ich explode("\",", ...) nehmen

    Bleibt mir da nur die Möglichkeit die kompletten Strings auseinanderzunehmen und nach Zeichenvorkommen zu durchsuchen und alle Fälle abzufangen ?


    Muss doch auch einfacher gehen


    Vielen Dank schonmal im Voraus !

  • #2
    Mit regulären Ausdrücken kannst du da ran

    Der Rahmen ist erstmal klar; für den Anfang setz ich mal ein einfaches explode ein:
    PHP-Code:
    $daten file('excelexport.txt');
    $felder = array();
    foreach(
    $daten as $zeilennr => $zeile)
      
    // Daten umwandeln in Array
      
    $felder[] = explode(','$zeile); 
    Damit hättest du ein zweidimensionales Array $felder mit den Daten. Nu hast du aber in den Daten diese zwei Probleme:
    1. Kommata
    2. Gänsefüßchen

    Das mit den Kommata läßt sich recht einfach mit einer regexp lösen; "einfach" das explode hierdurch ersetzen:
    PHP-Code:
    {
      
    preg_match_all('/(,|^)\s*("(.*)"|.*)\s*(,|$)/U'$zeile$matches,
        
    PREG_PATTERN_ORDER);
      
    $zeilenfelder = array();
      foreach(
    $matches[3] as $i => $feld)
      {
        if (!
    $feld$feld $matches[2][$i];
        
    $zeilenfelder[] = $feld;
      }
      
    $felder[] = $zeilenfelder;

    Für das Problem mit den Gänsefüßen muss dann nur noch eine Kleinigkeit im regulären Ausdruck angepasst werden: "(.|\\")*" statt ".*". Damit wird zwar die Nummerierung der Ergebnisse ein wenig verschoben; jene die in der Schleife benötigt werden, bleiben aber unverändert.

    Der komplette Ausdruck lautet nun so:
    PHP-Code:
    '/(,|^)\s*("((.|\\")*)"|.*)\s*(,|$)/U' 
    Falls im Export auch Gänsefüßchen in Daten sind, die NICHT in Gänsefüße eingeschlossen sind: einfach Bescheid sagen; da sollte auch eine kleine Anpassung genügen.

    Wie immer sind alle Snippets nicht getestet und werden hier ohne Gewähr gepostet.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar

    Lädt...
    X