<?php in [ubb]

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Deiman

Robert Deiman

11/10/2008 15:40:00
Quote Anchor link
Hoi allemaal, ik ben bezig met een UBB parser om regexes te leren. dikgedrukt en dergelijke is allemaal geen probleem, maar ik kom er niet uit met PHP binnen de regex.

Hij gooit de hele boel steeds door elkaar, waardoor kom ik niet achter nog. (de php string komt steeds vooraan te staan en niet op de plek waar die zou moeten)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
/**
 * @author Robert Deiman
 * @company Prodes
 * @copyright 2008
 */


$bericht = 'bladiebla
[b]Dikgedrukt[/b]
<?
//dit is een voorbeeld van een php stukje;
function_test($variabele){
    return $variabele;
    }
?>
[i]Cursief[/i]
bladiebla'
;
$bericht = preg_replace('#\<\?(.*?)\?>#ise',"highlight_string('<?php \\1 ?>')",$bericht);
$bericht = preg_replace('#\[b\](.+?)\[/b\]#is','<strong>\\1</strong>',$bericht);
$bericht = preg_replace('#\[i\](.+?)\[/i\]#is','<em>\\1</em>',$bericht);

echo $bericht;
?>


Voorbeeld van output:
http://www.robertdeiman.net/phphulp/ubb.php

edit:
De vraag voor de duidelijkheid:
Hoe zorg ik dat de php code wel op de juiste plek blijft staan?
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
PHP hulp

PHP hulp

08/10/2024 18:18:45
 
Joren de Wit

Joren de Wit

11/10/2008 15:49:00
Quote Anchor link
Dat komt door de functie highlight_string(), deze output het resultaat direct. Geef de boolean true als tweede parameter aan deze functie mee, dan zal het resultaat als string teruggegeven worden, precies zoals jij wilt.

Zie ook: highlight_string
 
Robert Deiman

Robert Deiman

11/10/2008 15:51:00
Quote Anchor link
Super, dankjewel.. :)

Het is toch makkelijker dan ik dacht, maar heb echt lopen zoeken om het te vinden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.