Je moet hem helemaal anders maken.
Als je nu een code blok hebt:
[code]<?php
str_replace('[url]', 'hoi ', $blaat);
?>[/code]
en je gooit die door je UBB parser, wordt [url] ook door je parser vervangen, waardoor hij niet meer werkt.
Zo maak ik ze altijd:
Eerst haal je alle [code]-blokken eruit en zet je in een array. De code zelf vervang je door een MD5-hash (waarvan boeit niet). Die MD5-hash sla je ook op.
Dan heb je dus zo'n array ongeveer:
1
2
3
4
5
6
Array
(
[9cdfb439c7876e703e307864c9167a15] => 1e code blok
[3e1e89ea41bf1a3d5dd51b3d97873c70] => 2e code blok
[3b25e0933efd376db2c0a73ac36cfc2f] => 3e code blok
)
In je bericht staan dus geen [co
de]-tags met hun inhoud meer, maar md5 hashes.
Dan ga je met het bericht met die hashes erin de smilies, tags, enzovoort vervangen.
Als dat klaar is doorloop je die aray met MD5-hashes en de daarbij horende code blokken. Eventueel kun je nog tellen hoeveel regels het zijn, en daar een nummertje voor laten zetten... Maargoed; daarna vervang je de MD5-hash in het bericht door de highlight_string($value, TRUE) in je array.
Simpel toch?