|
|
|
|
|
|
| |
Most people are not used to HTML. So if you want to provide formatting option to your comment system or guest book, BBCode is the safest method. BBCode is supported by almost all Bulletin Boards, and Social Networking websites like Orkut. So most of the people are aware of how to use BBCode. Use the function below to add BBCode formatting to your script.
The first argument of the function is the string to be formatted. The second one is optional and setting it to true removes all HTML tags in the string. If it is made false, then the tags will be printed as is.
| <?php
function BBCodeFormat($str, $removeTags = FALSE){
$str = $removeTags ? strip_tags($str) : htmlentities($str);
$str = nl2br($str);
$pattern = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[align\=(left|center|right)\](.*?)\[\/align\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[mail\=(.*?)\](.*?)\[\/mail\]/is',
'/\[mail\](.*?)\[\/mail\]/is',
'/\[font\=(.*?)\](.*?)\[\/font\]/is',
'/\[size\=(.*?)\](.*?)\[\/size\]/is',
'/\[color\=(.*?)\](.*?)\[\/color\]/is',
);
$replace = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<a href="$1">$2</a>',
'<a href="$1">$1</a>',
'<div style="text-align: $1;">$2</div>',
'<img src="$1" />',
'<a href="mailto:$1">$2</a>',
'<a href="mailto:$1">$1</a>',
'<span style="font-family: $1;">$2</span>',
'<span style="font-size: $1;">$2</span>',
'<span style="color: $1;">$2</span>',
);
// Replace Tags
$str = preg_replace ($pattern, $replace, $str);
// Replace Quotes
$open = '<blockquote>';
$close = '</blockquote>';
preg_match_all ('/\[quote\]/i', $str, $matches);
$opentags = count($matches['0']);
preg_match_all ('/\[\/quote\]/i', $str, $matches);
$closetags = count($matches['0']);
$unclosed = $opentags - $closetags;
for ($i = 0; $i < $unclosed; $i++)$str .= '</blockquote>';
$str = str_replace ('[quote]', $open, $str);
$str = str_replace ('[/' . 'quote]', $close, $str);
return $str;
}
?> | |
Example Usage
| <?php
$str = "My [color=red]name[/color] is [u][b]Gerhard[/b] [i]Gerome[/i][/u]";
echo BBCodeFormat($str);
?> | | |
|
| PHP Script to find url links in a page Categories : PHP, URLs, Regexps, Arrays | | | How to get the source of a site into an array. Categories : Arrays, HTML, PHP | | | Tag content retrieval from websites with preg_match Categories : PHP, Regexps, Arrays, HTML and PHP | | | Form is a utility class for generating html forms. It provides form initialization and regex based data validation (both server and client side) with a convenient interface. This version obsoletes version 1.0a Categories : HTML, PHP, PHP Classes, Regexps | | | Check for functional file links (broken Files)
Categories : PHP, Data Validation, FTP, Regexps, Arrays | | | How to use regular expressions to get the list of links from an HTML page Categories : PHP, Regexps, HTML, HTML and PHP | | | Query2Report : Generating Html, Pdf and Csv Reports from SQL Query Categories : PHP, PHP, HTML, PDF, Excel | | | columned txt file to array()? Categories : Arrays, Strings, Regexps, PHP | | | Check if a file exists on a remote FTP server with PHP Categories : PHP, FTP, Regexps | | | Allows you to parse a deliniated string and put the individual fields in a SELECT option in a form Categories : HTML, PHP, Strings | | | Calculate Body Mass Index Categories : PHP, Algorithms, Regexps | | | How to strip non-alpha characters from a string Categories : Regexps, PHP | | | How to preset a text string in a textarea input field Categories : HTML, HTML and PHP, PHP, Beginner Guides | | | Display list of files within current and subdirectories (recursively) showing
each file as an anchored link and each directory as a category header. Categories : Filesystem, Directories, Arrays, PHP | | | Single-file PHP news system with automatic folder structure creation Categories : PHP, Filesystem, Arrays | |
|
|
|