Repository navigation
BBCode Helper
Korri edited this page Jan 30, 2013
·
11 revisions
Category:Helper::Community | Category:Helper::Text
Use this helper to parse strings and turn BBCode style tags into basic HTML with settings available to offer protection from reprobate types who post enormous images.
if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter BBCode Helpers
*
* @package CodeIgniter
* @subpackage Helpers
* @category Helpers
* @author Philip Sturgeon
* @changes MpaK http://mrak7.com
* @link http://codeigniter.com/wiki/BBCode_Helper/
*/
// ------------------------------------------------------------------------
/**
* parse_bbcode
*
* Converts BBCode style tags into basic HTML
*
* @access public
* @param string unparsed string
* @param int max image width
* @return string
*/
function parse_bbcode($str = '', $max_images = 0){
// Max image size eh? Better shrink that pic!
if($max_images > 0):
$str_max = "style=\"max-width:".$max_images."px; width: [removed]this.width > ".$max_images." ? ".$max_images.": true);\"";
endif;
$find = array(
"'\[b\](.*?)\[/b\]'is",
"'\[i\](.*?)\[/i\]'is",
"'\[u\](.*?)\[/u\]'is",
"'\[s\](.*?)\[/s\]'is",
"'\[img\](.*?)\[/img\]'i",
"'\[url\](.*?)\[/url\]'i",
"'\[url=(.*?)\](.*?)\[/url\]'i",
"'\[link\](.*?)\[/link\]'i",
"'\[link=(.*?)\](.*?)\[/link\]'i"
);
$replace = array(
'\\1',
'\\1',
'\\1',
'\\1',
'
1" alt="" />',
'1">\\1',
'1">\\2',
'1">\\1',
'1">\\2'
);
return preg_replace($find, $replace, $str);
}
?>