| Element |
11-28-2005 12:11 AM |
FUNCTIONS: Basic BBCode
I found these on some site in comments, don't remember where but I thought it would be usefull for people that want to have somewhat safe commenting (Or use where nessessary)
PHP Code:
<?php
function bbcode2html($message) {
$message = strip_tags($message, '<center></center><b></b><i></i><u></u><a></a><img><br>');
$message = str_replace ("\n", "<br>", "$message");
$message = str_replace ("[BR]", "<br>", "$message");
$message = str_replace("[CENTR]", "<center", $message);
$message = str_replace("[/CENTR]", "</center", $message);
$message = str_replace ("[U]", "<u>", "$message");
$message = str_replace ("[/U]", "</u>", "$message");
$message = str_replace ("[I]", "<i>", "$message");
$message = str_replace ("[/I]", "</i>", "$message");
$message = str_replace ("[B]", "<b>", "$message");
$message = str_replace ("[/B]", "</b>", "$message");
$message = str_replace ("[br]", "<br>", "$message");
$message = str_replace("[center]", "<center", $message);
$message = str_replace("[/center]", "</center", $message);
$message = str_replace ("[u]", "<u>", "$message");
$message = str_replace ("[/u]", "</u>", "$message");
$message = str_replace ("[i]", "<i>", "$message");
$message = str_replace ("[/i]", "</i>", "$message");
$message = str_replace ("[b]", "<b>", "$message");
$message = str_replace ("[/b]", "</b>", "$message");
$message = replaceUrl($message);
$message = replaceImg($message);
return $message;
}
function replaceImg($message) {
// Make image from [img]htp://.... [/img]
while(strpos($message, "[img]")!==false){
$begImg = strpos($message, "[img]");
$endImg = strpos($message, "[/img]");
$img = substr($message, $begImg, $endImg-$begImg+6);
$link = substr($img, 5, $endImg - $begImg -5);
$htmlImg = "<img src=$link border='0'>";
$message = str_replace($img, $htmlImg, $message);
// searches for other [img]-nodes
}
return $message;
}
function replaceUrl($message) {
// Make link from [url]htp://.... [/url] or [url=http://.... ]text[/url]
while(strpos($message, "[url")!==false){
$begUrl = strpos($message, "[url");
$endUrl = strpos($message, "[/url]");
$url = substr($message, $begUrl, $endUrl-$begUrl+6);
$posBracket = strpos($url, "]");
if ($posBracket != null){
if ($posBracket == 4){
// [url]http://.... [/url]
$link = substr($url, 5, $endUrl - $begUrl -5);
$htmlUrl = "<a href=$link target='_blank'>$link</A>";
} else {
// [url=http://....]text[/url]
$link = substr($url, 5, $posBracket-5);
$text = substr($url, $posBracket+1, strpos($url, "[/url]") - $posBracket-1);
$htmlUrl = "<a href=$link target='main'>$text</A>";
}
}
$message = str_replace($url, $htmlUrl, $message);
// searches for other [url]-nodes
}
return $message;
}
$string = "[b]BOLD[/b], [i]Italics[/i], [u]Underlined[/u] BR(x2): [br][br]
[center]Center[/center][br][br]
[url=http://dermetz.shack-cafe.com/]The Butcher Shop[/url] URL format 1
[url]http://dermetz.shack-cafe.com/[/url] URL format 2[br][br]
[img]http://shack-cafe.com/Meshuggah_Jordan.jpg[/img][br]Image";
$new_message = bbcode2html($string);
echo '<p>';
echo $new_message;
echo '</p>';
?>
|