ubb
hoi
ik moet dus iets met str_replace doen denk ik :?
heeft iemand enig idee hoe ik dit moet aanpakken?
$string = str_replace('','<font color=red>',$string);
ik zat zelf zo te denken....
is dit een goeie manier? wordt het geen probleem als ik geen haakjes om de kleur gebruik?
ipv red dus 'red'?
mvg,
Erik
Ik gebruik beide altijd om alles te testen, maar van andere browsers weet ik het niet, denk het wel.
Gewijzigd op 22/11/2005 17:12:00 door Robert Deiman
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sBericht = 'xxx[color=blUe]hoi[/color]xxx';
$sRegex = '#\[\s*color\s*=\s*(red|green|blue)\s*\](.*)?\[\s*/\s*color\s*\]#is';
$sBericht = preg_replace($sRegex, "<span style=\"color:$1\">$2</span>", $sBericht);
echo $sBericht;
?>
$sBericht = 'xxx[color=blUe]hoi[/color]xxx';
$sRegex = '#\[\s*color\s*=\s*(red|green|blue)\s*\](.*)?\[\s*/\s*color\s*\]#is';
$sBericht = preg_replace($sRegex, "<span style=\"color:$1\">$2</span>", $sBericht);
echo $sBericht;
?>
Niet getest maar zal het wel doen denk ik.
edit:
Getest...
edit2:
En om hoofdletters in de kleur om te zetten naar kleine letters:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
error_reporting(E_ALL);
$sBericht = 'xxx[color=blUe]hoi[/color]xxx';
function ubb_parser( $aMatches )
{
//print_r($aMatches);
return '<span style="color:' . strtolower($aMatches[1]) . '">' . $aMatches[2] . '</span>';
}
$sRegex = '#\[\s*color\s*=\s*(red|green|blue)\s*\](.*)?\[\s*/\s*color\s*\]#is';
$sBericht = preg_replace_callback($sRegex, 'ubb_parser', $sBericht);
echo $sBericht;
?>
error_reporting(E_ALL);
$sBericht = 'xxx[color=blUe]hoi[/color]xxx';
function ubb_parser( $aMatches )
{
//print_r($aMatches);
return '<span style="color:' . strtolower($aMatches[1]) . '">' . $aMatches[2] . '</span>';
}
$sRegex = '#\[\s*color\s*=\s*(red|green|blue)\s*\](.*)?\[\s*/\s*color\s*\]#is';
$sBericht = preg_replace_callback($sRegex, 'ubb_parser', $sBericht);
echo $sBericht;
?>
Gewijzigd op 22/11/2005 18:13:00 door Martijn B
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
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
<?php
$badword[0]="/{COLOR:RED}/";
$badword[1]="/{NOCOLOR}/";
$badword[2]="/{COLOR:BLUE}/";
$badword[3]="/{COLOR:BLACK}/";
$badword[4]="/{COLOR:YELLOW}/";
$badword[5]="/{COLOR:WHITE}/";
$badword[6]="/{BR}/";
$badword[11]="/{VET}/";
$badword[12]="/{CURSIEF}/";
$badword[13]="/{ONDERSTREEP}/";
$badword[18]="/{NOCURSIEF}/";
$badword[19]="/{NOONDERSTREEP}/";
$badword[20]="/{NOVET}/";
$badword[21]="/{CENTER}/";
$badword[22]="/{NOCENTER}/";
$replacement[0]="<font color=red>";
$replacement[1]="</font>";
$replacement[2]="<font color=blue>";
$replacement[3]="<font color=black>";
$replacement[4]="<font color=yellow>";
$replacement[5]="<font color=white>";
$replacement[6]="<br>";
$replacement[11]="<b>";
$replacement[12]="<i>";
$replacement[13]="<u>";
$replacement[18]="</i>";
$replacement[19]="</u>";
$replacement[20]="</b>";
$replacement[21]="<center>";
$replacement[22]="</center>";
ksort($badword);
ksort($replacement);
$bijdrage=$_POST["bijdrage"];
$bijdrage=cleanup($bijdrage,$badword,$replacement);
?>
$badword[0]="/{COLOR:RED}/";
$badword[1]="/{NOCOLOR}/";
$badword[2]="/{COLOR:BLUE}/";
$badword[3]="/{COLOR:BLACK}/";
$badword[4]="/{COLOR:YELLOW}/";
$badword[5]="/{COLOR:WHITE}/";
$badword[6]="/{BR}/";
$badword[11]="/{VET}/";
$badword[12]="/{CURSIEF}/";
$badword[13]="/{ONDERSTREEP}/";
$badword[18]="/{NOCURSIEF}/";
$badword[19]="/{NOONDERSTREEP}/";
$badword[20]="/{NOVET}/";
$badword[21]="/{CENTER}/";
$badword[22]="/{NOCENTER}/";
$replacement[0]="<font color=red>";
$replacement[1]="</font>";
$replacement[2]="<font color=blue>";
$replacement[3]="<font color=black>";
$replacement[4]="<font color=yellow>";
$replacement[5]="<font color=white>";
$replacement[6]="<br>";
$replacement[11]="<b>";
$replacement[12]="<i>";
$replacement[13]="<u>";
$replacement[18]="</i>";
$replacement[19]="</u>";
$replacement[20]="</b>";
$replacement[21]="<center>";
$replacement[22]="</center>";
ksort($badword);
ksort($replacement);
$bijdrage=$_POST["bijdrage"];
$bijdrage=cleanup($bijdrage,$badword,$replacement);
?>
sorry voor het slechte engels, ik heb in een luie bui m'n broertje de dingen laten invoeren.
in die cleanup() functie zitten dingen als addslashes, strip tags en preg_replace()
Had ik nog liggen:P
@Armorad: Het zou handig zijn als je die functie cleanup() dan ook zou laten zien ;)...
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
function cleanup($string=""){
$string=strip_tags($string,"<i><b><u><font>");
$string=htmlspecialchars($string);
$string=addslashes($string);
return $string;
}
?>
function cleanup($string=""){
$string=strip_tags($string,"<i><b><u><font>");
$string=htmlspecialchars($string);
$string=addslashes($string);
return $string;
}
?>
Code (php)
1
2
3
2
3
<?PHP
$tekst = preg_replace ("#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si", "<font color=\"\\1\">\\2</font>", $tekst);
?>
$tekst = preg_replace ("#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si", "<font color=\"\\1\">\\2</font>", $tekst);
?>
Jip:
Ik zou zulk soort tags niet gebruiken: <font color=red>, omdat je met stylesheets een veel schonere code krijgt, die ook overzichtelijker is.
@Armorad: Het zou handig zijn als je die functie cleanup() dan ook zou laten zien ;)...
@Armorad: Het zou handig zijn als je die functie cleanup() dan ook zou laten zien ;)...
Jip het gaat hier niet om de opmaak van een site te maken ;) Of wou je voor een bericht die iemand achterlaat elke keer een .css maken? Het gaat erom dat iemand een bericht kan maken tekst en dat die dat dan gaat omzetten naar correcte HTML. Zo kan je met beperkte code werken en toch html opmaak in je berichten zetten. :D