preg_split delim capture ordering

Tags:    php

Jeg har en preg_split: $arr=preg_split("/\\[(code)\\](.*)\\[\\/code\\]/Usmi",$content,-1,PREG_SPLIT_DELIM_CAPTURE);

mit problem er at den lister resultatet i et 1 dimensionalt array:

array(
[0]=>"teksten før code tags",
[1]=>"code",
[2]=>"teksten mellem de 2 code tags",
[3]=>"teksten efter code tags");

men jeg ville gerne have det listet sådan her:
Fold kodeboks ind/udKode 



Vil have preg_split til at returnere det sådan, kan udemærket godt se at jeg bare kan loop igennem det første resultat for at danne den opbygning jeg ville have.



Indlæg senest redigeret d. 04.03.2008 09:00 af Bruger #5620
2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Som du har erfaret er det er ikke muligt med preg_split.

Det du i stedet kan gøre er lidt den idé du selv er klar over:

pseudo-kode:
Fold kodeboks ind/udKode 


Men om denne metode er bedre, skal jeg ikke kunne sige.



Indlæg senest redigeret d. 04.03.2008 09:23 af Bruger #10216
Den kode du skriver fanger dog hverken teksten før,mellem eller efter code tagsne. Så den er ikke rigtig brugbar, den er faktisk dårligere end den kode jeg allerede havde :).

nå nu opgav jeg totalt at bruge regex, tog mig kun en time at lave et script der bare gennem løber teksten og splitter den op i tags attributes and free text. :)



Indlæg senest redigeret d. 06.03.2008 11:27 af Bruger #5620
t