Recently I`m busy to improve my comment-system.
But Function to convert BBcode in HTML tags
I can`t get it to work it does not convert.
I have my script in PDO
Code: Select all
$output .= '
<div class="panel panel-default" style="margin-left:'.$marginleft.'px">
<div class="panel-heading"><img class="img-circle" src="profile-image/'. $row['comment_sender_id']. '.jpg" width="50" height="50"></img class>By <b>'.$row["comment_sender_name"].'</b>Comment to: '.$row["reply_to"].'<br> on <i>'.$row["date"].'</i></div>
<div class="panel-body">'.$row["comment"].'</div>
Code: Select all
<?php
// Function to convert BBcode in HTML tags ( http://coursesweb.net )
function formatBBcode($str) {
// characters that represents bbcode, and smiles
$bbcode = array(
'/\[b\](.*?)\[\/b\]/is', '/\[i\](.*?)\[\/i\]/is', '/\[u\](.*?)\[\/u\]/is', // for format text
'/\[url\=(.*?)\](.*?)\[\/url\]/is', // for URL
'/\[color\=#([0-9a-f]{3,6})\](.*?)\[\/color\]/is', // for color
// smiles
'/:\)/i', '/:\(/i', '/:P/i', '/:D/i', '/:S/i', '/:O/i', '/:=\)/i', '/:\|H/i', '/:X/i', '/:\-\*/i');
// HTML code that replace bbcode, and smiles characters
$htmlcode = array(
'<b>$1</b>', '<i>$1</i>', '<u>$1</u>', // format text
'<a target="_blank" href="$1" title="$2">$2</a>', // URL
'<span style="color:#$1;">$2</span>', // color
// smiles (from "icos/" directory)
'<img src="icos/0.gif" alt=":)" style="border:none;" />',
'<img src="icos/1.gif" alt=":(" style="border:none;" />',
'<img src="icos/2.gif" alt=":P" style="border:none;" />',
'<img src="icos/3.gif" alt=":D" style="border:none;" />',
'<img src="icos/4.gif" alt=":S" style="border:none;" />',
'<img src="icos/5.gif" alt=":O" style="border:none;" />',
'<img src="icos/6.gif" alt=":=)" style="border:none;" />',
'<img src="icos/7.gif" alt=":|H" style="border:none;" />',
'<img src="icos/8.gif" alt=":X" style="border:none;" />',
'<img src="icos/9.gif" alt=":-*" style="border:none;" />'
);
$str = preg_replace($bbcode, $htmlcode, $str); // perform replaceament
return nl2br($str); // nl2br() to replace new line characters with <br>
}
// if data from POST "txtmsg", gets the text
// delete tags, replace BBcode with HTML, and output the text
$str = isset($_POST['txtmsg']) ? formatBBcode( strip_tags($_POST['txtmsg'], '<b><i><u><span><img><a>') ) : 'http://coursesweb.net';
echo $str;
?>
Code: Select all
$str = isset($_POST['txtmsg']) ? formatBBcode( strip_tags($_POST['txtmsg'], '<b><i><u><span><img><a>') ) : 'http://coursesweb.net';
echo $str;