[php]preg_replace probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tjolk
  • Registratie: Juni 2007
  • Laatst online: 12:07
Blijft lastig, die preg_replaces...

Ik heb bijvoorbeeld de volgende code:
HTML:
1
2
3
4
5
<!--teststart--><script type="text/javascript">test(
(reeks1)
300,300,600,600,
(reeks2)
)</script><!--testend-->

Waarbij regel 2 en 4 variabel zijn (kunnen dus van alles bevatten). Regel 1, 3 en 5 zijn altijd hetzelfde.
Ik wil dit graag converteren naar:
code:
1
[test=(reeks1)](reeks2)[/test]


Hiervoor heb ik deze code bedacht:
PHP:
1
$txt = preg_replace("#$startcode(.+?)$middencode(.+?)$eindcode#is", "[test=\$2\]\$1\[/test]" , $txt );

$startcode, $middencode en $eindcode zijn respectievelijk regel 1, 3 en 5 uit het eerste codeblok.

Dit heeft het volgende resultaat:
code:
1
[test=((reeks1)]((reeks1),300,300,600,600, (reeks2)[/test]

Nog niet helemaal lekker dus. Bij reeks1 staat nog een ( ervoor die er niet hoort en bij het tweede stuk staat ((reeks1),300,300,600,600, die ik daar niet wil.

Ik zit me er al een tijd op stuk te bijten, ben al een aardig eind gekomen, maar hier loop ik echt op vast. Wat doe ik fout?

[ Voor 17% gewijzigd door Tjolk op 19-05-2008 22:48 ]

Tjolk is lekker. overal en altijd.


Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 19:39
Als die regels (1, 3 en 5) altijd hetzelfde zijn, kun je toch gewoon str_replace() gebruiken?
Of je explode op \n en pakt de regels die je wilt uit de resulterende array.

Acties:
  • 0 Henk 'm!

  • Tjolk
  • Registratie: Juni 2007
  • Laatst online: 12:07
Och, tuurlijk, ik was weer veel te moeilijk aan het denken. str_replace is veel gemakkelijker in dit geval. 't Is gelukt zo, thanks!

Tjolk is lekker. overal en altijd.