<?php
function parsemymessage($string) {
// destroy slashes
$string = stripslashes($string);
// destroy html tags
$string = strip_tags($string);
// create smileys
$string = str_replace(":)", "<img src=\"images/smileys/smiley.gif\" alt=\":)\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":D", "<img src=\"images/smileys/cheesy.gif\" alt=\":D\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(";)", "<img src=\"images/smileys/wink.gif\" alt=\";)\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(";D", "<img src=\"images/smileys/grin.gif\" alt=\";D\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace("???", "<img src=\"images/smileys/huh.gif\" alt=\"???\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":(", "<img src=\"images/smileys/sad.gif\" alt=\":(\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":o", "<img src=\"images/smileys/shocked.gif\" alt=\":o\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":`(", "<img src=\"images/smileys/cry.gif\" alt=\":`(\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":*", "<img src=\"images/smileys/kiss.gif\" alt=\":*\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":X", "<img src=\"images/smileys/lipsrsealed.gif\" alt=\":X\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":p", "<img src=\"images/smileys/tongue.gif\" alt=\":p\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
// bb codes
$search = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[s\](.*?)\[\/s\]/is',
'/\[code\](.*?)\[\/code\]/is',
'/\[quote\](.*?)\[\/quote\]/is',
'/\[quote\=(.*?)\](.*?)\[\/quote\]/is',
'/\[sub\](.*?)\[\/sub\]/is',
'/\[sup\](.*?)\[\/sup\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is'
);
$replace = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<s>$1</s>',
'<div><b>Code:</b></div><div id="code">$1</div>',
'<div><b>Quote:</b></div><div id="quote">$1</div>',
'<div><b>Quote from: $1</b></div><div id="quote">$2</div>',
'<sub>$1</sub>',
'<sup>$1</sup>',
'<img src="$1" />',
'<a href="$1">$1</a>',
'<a href="$1">$2</a>'
);
$string = preg_replace($search, $replace, $string);
$search2 = array('(\[php\](.*?)\[/php\])se');
$replace2 = array("''.highlight_string('$1', true).''");
$string = preg_replace($search2, $replace2, $string);
// \n or \r to <br>
$string = nl2br($string);
// destory spaces
$string = trim($string);
// return string
return $string;
}
?>
class php_highlight {
private static $blocks = array();
private static $counter = 0;
static function register_block($block) {
$i = self::$counter++;
self::$blocks[$i] = $block;
return '[php]#block'.($i).'[/php]';
}
static function retrieve_block($id) {
ob_start();
echo '<blockquote><fieldset><legend>php code:</legend>';
highlight_string(self::$blocks[$id]);
echo '</fieldset></blockqoute>';
return ob_get_clean();;
}
}
function parsemymessage($string) {
// destroy slashes
$string = stripslashes($string);
// pre-remove php blocks:
$string = preg_replace('/\[php](.*?)\[\/php]/ise', 'php_highlight::register_block("$1")', $string);
// destroy html tags
$string = strip_tags($string, '<?php');
// create smileys
$string = str_replace(":)", "<img src=\"images/smileys/smiley.gif\" alt=\":)\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":D", "<img src=\"images/smileys/cheesy.gif\" alt=\":D\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(";)", "<img src=\"images/smileys/wink.gif\" alt=\";)\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(";D", "<img src=\"images/smileys/grin.gif\" alt=\";D\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace("???", "<img src=\"images/smileys/huh.gif\" alt=\"???\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":(", "<img src=\"images/smileys/sad.gif\" alt=\":(\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":o", "<img src=\"images/smileys/shocked.gif\" alt=\":o\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":`(", "<img src=\"images/smileys/cry.gif\" alt=\":`(\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":*", "<img src=\"images/smileys/kiss.gif\" alt=\":*\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":X", "<img src=\"images/smileys/lipsrsealed.gif\" alt=\":X\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
$string = str_replace(":p", "<img src=\"images/smileys/tongue.gif\" alt=\":p\" width=\"18\" height=\"18\" border=\"0\" style=\"vertical-align: middle;\" />", $string);
// bb codes
$search = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[s\](.*?)\[\/s\]/is',
'/\[code\](.*?)\[\/code\]/is',
'/\[quote\](.*?)\[\/quote\]/is',
'/\[quote\=(.*?)\](.*?)\[\/quote\]/is',
'/\[sub\](.*?)\[\/sub\]/is',
'/\[sup\](.*?)\[\/sup\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is',
'/\[php\]#block(\d+)\[\/php\]/ise'
);
$replace = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<s>$1</s>',
'<div><b>Code:</b></div><div id="code">$1</div>',
'<div><b>Quote:</b></div><div id="quote">$1</div>',
'<div><b>Quote from: $1</b></div><div id="quote">$2</div>',
'<sub>$1</sub>',
'<sup>$1</sup>',
'<img src="$1" />',
'<a href="$1">$1</a>',
'<a href="$1">$2</a>',
'php_highlight::retrieve_block("$1")'
);
$string = preg_replace($search, $replace, $string);
//$search2 = array('(\[php\](.*?)\[/php\])se');
//$replace2 = array("''.highlight_string('$1', true).''");
//$string = preg_replace($search2, $replace2, $string);
// \n or \r to <br>
$string = nl2br($string);
// destory spaces
$string = trim($string);
// return string
return $string;
}
$message = 'test [b]bold[/b][php]<'.'?php echo time();'.'?'.'>[/php]';
echo htmlspecialchars($message).'<hr />';
Open in new window