Geen bbcode weergeven
Hoi,
ik heb de volgende functie voor bbcodes:
Nu wil ik een soort code tag toevoegen die zorgt dat alles binnen de code tag niet word omgezet.
Dus
moet niet worden omgezet in hoi.
Hoe krijg ik dat voor elkaar?
ik heb de volgende functie voor bbcodes:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
function bbcode($txt)
{
$txt = preg_replace('_\[b\](.+?)\[/b\]_is', '<b>$1</b>', $txt);
$txt = preg_replace('_\[i\](.+?)\[/i\]_is', '<i>$1</i>', $txt);
/* ect. */
echo $txt;
}
?>
function bbcode($txt)
{
$txt = preg_replace('_\[b\](.+?)\[/b\]_is', '<b>$1</b>', $txt);
$txt = preg_replace('_\[i\](.+?)\[/i\]_is', '<i>$1</i>', $txt);
/* ect. */
echo $txt;
}
?>
Nu wil ik een soort code tag toevoegen die zorgt dat alles binnen de code tag niet word omgezet.
Dus
moet niet worden omgezet in hoi.
Hoe krijg ik dat voor elkaar?
Gewijzigd op 01/01/1970 01:00:00 door Henk PHP
niemand?
Je zou gebruik kunnen maken van tags waartussen de tekst niet geparsed wordt. Dit doe je door allereerst de tekst tussen deze tags op te slaan in een array en te vervangen door de index waarin je die opgeslagen hebt. Vervolgens ga je al je andere UBB parsen en uiteindelijk zet je de te negeren tekst weer terug.
http://www.phphulp.nl/php/scripts/4/966/
Kijk eens naar dit script, een goed voorbeeld van hoe je het zou kunnen aanpakken...
http://www.phphulp.nl/php/scripts/4/966/
Kijk eens naar dit script, een goed voorbeeld van hoe je het zou kunnen aanpakken...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Hm, hoe moet ik dat dan precies doen?
Ik ben bang dat ik de werkwijze in dat script niet helemaal door heb.
Kun je een klein voorbeeldje geven?
Ik ben bang dat ik de werkwijze in dat script niet helemaal door heb.
Kun je een klein voorbeeldje geven?
Gewijzigd op 01/01/1970 01:00:00 door Henk PHP
Het gaat enkel om deze drie functies uit die klasse:
De eerste die aangeroepen wordt is ubb_ignore(). Vanaf daar kun je vast zelf wel achterhalen wat er met de data gebeurt.
ps. Minder belangrijke regels nog even gecomment...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
function ubb_ignore($string = '', $return = false){
//if(!empty($string)) $this->setText($string);
$this->text = preg_replace('#\[ignore\](.*?)\[/ignore\]#sie',"\$this->_ignore('\\1')",$this->text);
if($return) return $this->getText();
}
// En:
function getText(){
//$this->text = preg_replace('#\[highlight\]([0-9])\[/highlight\]#sie','$this->_highlight(\\1)',$this->text);
//$this->text = preg_replace('#\[highlight=(.+?)\]([0-9])\[/highlight\]#sie','$this->_highlight(\\2,"\\1")',$this->text);
$this->text = preg_replace('#\[ignore\]([0-9])\[/ignore\]#sie','$this->_ignore(\\1)',$this->text);
return $this->text;
}
// En:
function _ignore($code){
if(is_numeric($code)){
return $this->code[$code];
}else{
$n = array_push($this->code,nl2br(htmlspecialchars($code)));
return '[ignore]'.--$n.'[/ignore]';
}
}
?>
function ubb_ignore($string = '', $return = false){
//if(!empty($string)) $this->setText($string);
$this->text = preg_replace('#\[ignore\](.*?)\[/ignore\]#sie',"\$this->_ignore('\\1')",$this->text);
if($return) return $this->getText();
}
// En:
function getText(){
//$this->text = preg_replace('#\[highlight\]([0-9])\[/highlight\]#sie','$this->_highlight(\\1)',$this->text);
//$this->text = preg_replace('#\[highlight=(.+?)\]([0-9])\[/highlight\]#sie','$this->_highlight(\\2,"\\1")',$this->text);
$this->text = preg_replace('#\[ignore\]([0-9])\[/ignore\]#sie','$this->_ignore(\\1)',$this->text);
return $this->text;
}
// En:
function _ignore($code){
if(is_numeric($code)){
return $this->code[$code];
}else{
$n = array_push($this->code,nl2br(htmlspecialchars($code)));
return '[ignore]'.--$n.'[/ignore]';
}
}
?>
De eerste die aangeroepen wordt is ubb_ignore(). Vanaf daar kun je vast zelf wel achterhalen wat er met de data gebeurt.
ps. Minder belangrijke regels nog even gecomment...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Hm, ik snap het een beetje denk ik maar ik gebruik geen classes dus t is een beetje puzzel werk.
Zo ziet mijn code er nu uit.
Ik zie ff niet hoe ik dat hierop moet toepassen
Zo ziet mijn code er nu uit.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
function smileys($txt)
{
$smileys = array(
':)',
':(',
':P',
'8)',
'8-)',
':w',
'(a)',
'(ja)',
'(nee)',
'(ok)',
'_0_'
);
$imgs = array(
'<img src="afbeeldingen/smileys/smile.gif" border="0"/>',
'<img src="afbeeldingen/smileys/sad.gif" border="0"/>',
'<img src="afbeeldingen/smileys/clown.gif" border="0"/>',
'<img src="afbeeldingen/smileys/cool.gif" border="0"/>',
'<img src="afbeeldingen/smileys/bonk.gif" border="0"/>',
'<img src="afbeeldingen/smileys/bye.gif" border="0"/>',
'<img src="afbeeldingen/smileys/hypocrite.gif" border="0"/>',
'<img src="afbeeldingen/smileys/yes.gif" border="0"/>',
'<img src="afbeeldingen/smileys/no.gif" border="0"/>',
'<img src="afbeeldingen/smileys/thumbsup.gif" border="0"/>',
'<img src="afbeeldingen/smileys/worshippy.gif" border="0"/>'
);
$txt = str_replace ($smileys, $imgs, $txt);
$txt = preg_replace('_\[b\](.+?)\[/b\]_is', '<b>$1</b>', $txt);
$txt = preg_replace('_\[i\](.+?)\[/i\]_is', '<i>$1</i>', $txt);
$txt = preg_replace('_\[u\](.+?)\[/u\]_is', '<u>$1</u>', $txt);
$txt = preg_replace('_\[url=(.+?)\](.+?)\[/url\]_is', '<a href="$1" target="_blank">$2</a>', $txt);
$txt = preg_replace('_\[url\](.+?)\[/url\]_is', '<a href="$1" target="_blank">$1</a>', $txt);
while (preg_match('_\[quote=(.+?)\](.+?)\[/quote\]_is', $txt))
{
$txt = preg_replace('_\[quote=(.+?)\](.+?)\[/quote\]_is', '<table class="quote"><tr><td><b>$1</b> schreef:</td></tr><tr><td><i>$2</i></td></tr></table>', $txt);
}
while (preg_match('_\[quote\](.+?)\[/quote\]_is', $txt))
{
$txt = preg_replace('_\[quote\](.+?)\[/quote\]_is', '<table class="quote"><tr><td>quote:</td></tr><tr><td><i>$1</i></td></tr></table>', $txt);
}
$txt = preg_replace('_\[img\](.+?)\[/img\]_is', '<img src="$1" border="0">', $txt);
echo $txt;
}
?>
function smileys($txt)
{
$smileys = array(
':)',
':(',
':P',
'8)',
'8-)',
':w',
'(a)',
'(ja)',
'(nee)',
'(ok)',
'_0_'
);
$imgs = array(
'<img src="afbeeldingen/smileys/smile.gif" border="0"/>',
'<img src="afbeeldingen/smileys/sad.gif" border="0"/>',
'<img src="afbeeldingen/smileys/clown.gif" border="0"/>',
'<img src="afbeeldingen/smileys/cool.gif" border="0"/>',
'<img src="afbeeldingen/smileys/bonk.gif" border="0"/>',
'<img src="afbeeldingen/smileys/bye.gif" border="0"/>',
'<img src="afbeeldingen/smileys/hypocrite.gif" border="0"/>',
'<img src="afbeeldingen/smileys/yes.gif" border="0"/>',
'<img src="afbeeldingen/smileys/no.gif" border="0"/>',
'<img src="afbeeldingen/smileys/thumbsup.gif" border="0"/>',
'<img src="afbeeldingen/smileys/worshippy.gif" border="0"/>'
);
$txt = str_replace ($smileys, $imgs, $txt);
$txt = preg_replace('_\[b\](.+?)\[/b\]_is', '<b>$1</b>', $txt);
$txt = preg_replace('_\[i\](.+?)\[/i\]_is', '<i>$1</i>', $txt);
$txt = preg_replace('_\[u\](.+?)\[/u\]_is', '<u>$1</u>', $txt);
$txt = preg_replace('_\[url=(.+?)\](.+?)\[/url\]_is', '<a href="$1" target="_blank">$2</a>', $txt);
$txt = preg_replace('_\[url\](.+?)\[/url\]_is', '<a href="$1" target="_blank">$1</a>', $txt);
while (preg_match('_\[quote=(.+?)\](.+?)\[/quote\]_is', $txt))
{
$txt = preg_replace('_\[quote=(.+?)\](.+?)\[/quote\]_is', '<table class="quote"><tr><td><b>$1</b> schreef:</td></tr><tr><td><i>$2</i></td></tr></table>', $txt);
}
while (preg_match('_\[quote\](.+?)\[/quote\]_is', $txt))
{
$txt = preg_replace('_\[quote\](.+?)\[/quote\]_is', '<table class="quote"><tr><td>quote:</td></tr><tr><td><i>$1</i></td></tr></table>', $txt);
}
$txt = preg_replace('_\[img\](.+?)\[/img\]_is', '<img src="$1" border="0">', $txt);
echo $txt;
}
?>
Ik zie ff niet hoe ik dat hierop moet toepassen
Gewijzigd op 01/01/1970 01:00:00 door Henk PHP




