Mark: String kürzen

Hallo, ich stehe vor der mißlichen Aufgabe eine csv-Datei importieren zu müssen, die mit einem ; als Feldtrenner versehen ist.
Das Problem ist, dass in den einzelnen Zeilen unterschiedlich oft ein ; nacheinander erscheint.

Meine Frage:
Wie kann ich über eine Funktion den string, in dem jeweils eine Zeile der csv-Datei enthalten ist, von doppelten befreien, so daß HINTEREINANDER nur noch ein Semikolon zu finden ist.
Sprich, eine Funktion ala str_replace nur etwas variable, die mir jedes mal wenn zwei Semikolons aufeinander folgen eines davon entfernt...

  1. @@Mark:

    nuqneH

    Wie kann ich über eine Funktion den string, in dem jeweils eine Zeile der csv-Datei enthalten ist, von doppelten befreien, so daß HINTEREINANDER nur noch ein Semikolon zu finden ist.

    Ersetze ;;+ durch ;

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
  2. Hallo, ich stehe vor der mißlichen Aufgabe eine csv-Datei importieren zu müssen, die mit einem ; als Feldtrenner versehen ist.
    Das Problem ist, dass in den einzelnen Zeilen unterschiedlich oft ein ; nacheinander erscheint.

    Meine Frage:
    Wie kann ich über eine Funktion den string, in dem jeweils eine Zeile der csv-Datei enthalten ist, von doppelten befreien, so daß HINTEREINANDER nur noch ein Semikolon zu finden ist.
    Sprich, eine Funktion ala str_replace nur etwas variable, die mir jedes mal wenn zwei Semikolons aufeinander folgen eines davon entfernt...

    hallo,

    was spricht denn gegen str_replace(";;", ";") ??

    Ansonsten arbeite mit regulären Ausdrücken, wenn es mehr als 2 sind:

    preg_replace(";{2,}", ";", $text);

    MfG!

  3. Hi Mark!

    Wie kann ich über eine Funktion den string, in dem jeweils eine Zeile der csv-Datei enthalten ist, von doppelten befreien, so daß HINTEREINANDER nur noch ein Semikolon zu finden ist.

    Ist dir bewusst, dass dabei die Zuordnung, also der Index, der Daten flöten geht?

    Eine Name, der erst an Position 4 steht, kann so an eine andere Position geraten. Bei zwei Datensätze wie
    ;;;Thomas;...
    ;;23;Martin;...

    kann das problematisch werden.

    Wo liegt also dein Problem?
    Leere Daten kann man auch in PHP entsprechend behandeln.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Leere Daten kann man auch in PHP entsprechend behandeln.

      mit fgetcsv() passiert das unter PHP sogar automatisch :)