Pagina 1 van 1

Hulp bij string replacement in code-venster

Geplaatst: 04 jun 2006, 19:12
door -hunter-
Beste mensen,

Ik had al een vraag gesteld bij Stijlen Support, maar zowel subject, categorie en vraagstelling waren niet helemaal juist, daarom even helemaal overnieuw...

Naast de quote-button kennen we natuurlijk ook de code-button waarin (standaard) een non-proportioneel font verschijnt. Op ons forum wordt dit niet helemaal gebruikt waar het normaal gesproken voor gebruikt wordt, maar daar worden logging regels in geplaatst die beginnen met een reeks van 7 cijfers, vervolgens een tijd/datum stempel en daarna kan van alles volgen. Ik wil nu een apart CSS ID toekennen aan die reeksen van 7 cijfers, alsmede tijd en datum. Ik ben er aardig mee op weg, maar krijg het toch niet helemaal werkend.

Ik neem aan dat ik moet zijn in bbcode.php, functie bbencode_second_pass_code($text, $uid, $bbcode_tpl)

Vervolgens staat daar een loopje alwaar een aantal zaken gezocht/vervangen worden zoals spaties en tabjes.

Nu wil ik zoeken naar $code = "/^(\d{7})/" en dit vervolgens vervangen door "<span id='capcode'>$code</span>".

Ik weet dat ik het niet helemaal goed weergeef, maar het komt erop neer dat de gezochte en gevonden $code tussen <span> </span> komt te staan zodat ik hier via de .CSS een aparte kleur aan kan toekennen.

Ik heb de $after_replace gebruikt zoals ik voor de spaties en tabjes ook wordt gebruikt :

$after_replace = preg_replace($code, "<span id='capcode'>$1</span>", $after_replace);

En dat werkt, in zoverre, alleen de code in de eerste regel wordt gevonden en vervangen, terwijl er in het code-venster meerdere regels kunnen staan met dezelfde opmaak, voorbeeld :

1234567 20:08:14 04-06-06 Wat een weertje vandaag he
7654321 20:08:20 04-06-06 Morgen wordt het nog beter weer

Dat zet een gebruiker dus in een code-venster :

Code: Selecteer alles

1234567 20:08:14 04-06-06 Wat een weertje vandaag he
7654321 20:08:20 04-06-06 Morgen wordt het nog beter weer
Waarna PHP dus de eerder genoemde replacement toepast.

Zoals gezegd lukt het dus eenmalig, maar ik denk dat ik ergens anders moet zitten en niet in de loop?

Wie helpt mij op weg......

Groeten, Peter.