PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Gelöst] Hilfe


condor99
18.04.2006, 14:20
Hallo,

ich habe folgendes Problem ich will z.B. diesen String
S1;Betr;"Betreuung ASS;BP; FOST;BVJ; EIBE";-
in PHP mit split zerlegen
Trennzeichen ist das Semikolon. Dies gilt aber nur für die welche nicht Zwischen den Anführungszeichen stehen.
Ergebnis sollte sein
S1
Betr
"Betreuung ASS;BP; FOST;BVJ; EIBE"
-
Danke für die Hilfe


eViL_oNe
18.04.2006, 16:27
http://de.php.net/manual/de/function.fgetcsv.php

insbesondere die Kommentare angucken, da steht unter anderem ein Snipplet drin, um komma-separierte Strings in ein Array aufzusplitten

condor99
19.04.2006, 09:05
http://de.php.net/manual/de/function.fgetcsv.php

insbesondere die Kommentare angucken, da steht unter anderem ein Snipplet drin, um komma-separierte Strings in ein Array aufzusplitten


ich habe das mal probiert

$input = 'S1;Betr;"Betreuung ASS;BP; FOST;BVJ; EIBE";-';

$output = preg_split('/[^;]*?=[^"][^;]*|[^;]*?=".*?"/',$input);

print_r( $output );

das tut es aber nicht
Ergebnis -> Array ( [0] => S1;Betr;"Betreuung ASS;BP; FOST;BVJ; EIBE";- )
was mach ich da falsch?

Coreyl
19.04.2006, 10:58
ich kenn jetzt nit die genaue syntax bei php/reg. aber müsste es nit etwa so aussehen:

^(*);(*);"(*)"


[^;] <- normalerweise würde das eine negation bedeuten oder ? ("nicht ;")

eViL_oNe
19.04.2006, 11:48
ich weiss nicht, woher du diesen Code gezogen hast, ich bezog mich allerdings auf dieses Snipplet:

http://de.php.net/manual/de/function.fgetcsv.php#62524

es ist zwar auf Komma als Delimiter getrimmt, das lässt sich aber sehr leicht anpassen

condor99
19.04.2006, 11:50
ich kenn jetzt nit die genaue syntax bei php/reg. aber müsste es nit etwa so aussehen:

^(*);(*);"(*)"


[^;] <- normalerweise würde das eine negation bedeuten oder ? ("nicht ;")

ich habe das mal mit kodos probiert, da scheint es zu gehen aber in PHP mit split bekomme ich den String nicht zerlegt

condor99
19.04.2006, 12:01
ich weiss nicht, woher du diesen Code gezogen hast, ich bezog mich allerdings auf dieses Snipplet:

http://de.php.net/manual/de/function.fgetcsv.php#62524

es ist zwar auf Komma als Delimiter getrimmt, das lässt sich aber sehr leicht anpassen

Danke, Danke....
an alle, kaum macht man es richtig schon geht es!!!!
Habe das doch vorher glatt übersehen.

Coreyl
19.04.2006, 12:07
:rolleyes:
na dann...auf zum nächsten problem :eek: