Mailinglisten-Archive |
Hallo, mal ein eigentlich triviales Problem, zu dem mir zwar viele Lösungen einfallen, aber eigentlich nicht die ideale. Vielleicht könnt ihr helfen. Ich habe eine CSV-Datei mit ; Semiklon als Trennzeichen. Diese will ich splitten, weil die Werte alle gecheckt werden. Kein Problem mit explode. Nun kann es vorkommen, dass einige Felder weiterer Semikolons enthalten: 1;normaler Text;noch etwas 2;"anderer Text;mit internem Semikolon";noch etwas Mit preg_replace_callback kann ich jetzt die internen Semikolons in etwas anderes verwandeln, - aber in was? Die Werte werten später in eine Mysql-Tabelle geschrieben, aber vorher noch mal als gereinigte CSV-Datei geschrieben, die dann direkt mit LOAD DATA INFILE geschrieben werden. Als beste Lösung sehe ich im Moment, die internen ; als \; zu maskieren. Und dann nur an den unmasierten ; zu splitten. Aber hier bekomme ich unerwartet Probleme: $zellen = preg_split ('|(?!\\)\;|', $reihe); Oder kann PHP keinen negativen Look Ahead? Oder wo habe ich mich vertan? Compilation failed: missing ) at offset 7 . Kann mir jemand sagen, ob das überhaupt mit preg_split funktioniert? Habt ihr bessere Lösungsvorschläge für das Gesamtproblem? Viele Grüße Peter
php::bar PHP Wiki - Listenarchive