Вот как бы в скрипте есть такое:
<div class="telo">'.BBcode(smile(output($text['text']))).'</div>
Здесь присутствуют 3 функции, проверка на бб коды, проверка на смайлы, и фльтрация.
Вот содержимое функций:
function smile ( $text )
{
$files = glob( 'smiles/*.gif' );
$smiles = array( );
$pics = array( );
foreach ( $files as $a_files )
{
$name = pathinfo( $a_files, PATHINFO_FILENAME );
$smiles[] = '|\.'. preg_quote( $name ) .'\.|i';
$pics[] = '<img src="' . $a_files . '" alt="' . $name . '">';
}
return preg_replace( $smiles, $pics, $text );
}
/////////////////
function BBcode($str)
{
$str = preg_replace("#\[red\](.*?)\[/red\]#si", "<span style=\"color: red\">\\1</span>", $str);
$str = preg_replace("#\[blue\](.*?)\[/blue\]#si", "<span style=\"color: blue\">\\1</span>", $str);
$str = preg_replace("#\[black\](.*?)\[/black\]#si", "<span style=\"color: black\">\\1</span>", $str);
$str = preg_replace("#\[green\](.*?)\[/green\]#si", "<span style=\"color: green\">\\1</span>", $str);
$str = preg_replace("#\[small\](.*?)\[/small\]#si", "<span style=\"font-size: 8px\">\\1</span>", $str);
$str = preg_replace("#\[b\](.*?)\[/b\]#si", "<b>\\1</b>", $str);
$str = preg_replace("#\[u\](.*?)\[/u\]#si", "<u>\\1</u>", $str);
$str = preg_replace("#\[i\](.*?)\[/i\]#si", "<i>\\1</i>", $str);
$str = preg_replace("#\[strike\](.*?)\[/strike\]#si", "<strike>\\1</strike>", $str);
return $str;
}
/////////////
function output($var)
{
return nl2br(htmlspecialchars($var, ENT_QUOTES));
}
////////
Каким образом, сделать что бы, если в тексте присутствует php код, то что бы подсветка кода была.
Такой вариант уже пробовал:
<div class="telo">'.BBcode(smile(output(highlight_string($text['text'])))).'</div>
Если подсвечивать вариантом выше, то он вот что делает.
http://upwap.ru/1203508
если же без подсветки:
тоесть
<div class="telo">'.BBcode(smile(output($text['text']))).'</div>
то вот что выводится
http://upwap.ru/1203519
Istsam, $a=preg_replace_callback('#\<\?php(.+)\?\>#siU','name_func_light',$a);
28 Дек 2010, 21:30<div class="telo">'.preg_replace_callback('#\<\?php(.+)\?\>#siU','name_func_light',BBcode(smile(output($text['text'])))).'</div>
// ты же кодер,неужто непонимаешь куда вставить?
Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, 'name_func_light', to be a valid callback in X:\home\test1.ru\www\ViewArticle.php on line 13
28 Дек 2010, 21:56