Xwab
Форумыnavigate_nextПрограммирование на PHP

Возникла проблема
Сообщения
Istsam

Вот как бы в скрипте есть такое:

<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

28 Дек 2010, 20:48
Istsam

если же без подсветки:
тоесть

<div class="telo">'.BBcode(smile(output($text['text']))).'</div>

то вот что выводится
http://upwap.ru/1203519

28 Дек 2010, 20:52
Fashion

Istsam, $a=preg_replace_callback('#\<\?php(.+)\?\>#siU','name_func_light',$a);

28 Дек 2010, 21:30
Istsam

Fashion, это где вставить?

28 Дек 2010, 21:47
Fashion

вместо highlight_string

28 Дек 2010, 21:50
Fashion

хотя не, сверху всех функций

28 Дек 2010, 21:50
Istsam

Fashion, ты нормально можешь написать?
Куда вставить этот код?

28 Дек 2010, 21:53
Fashion

<div class="telo">'.preg_replace_callback('#\<\?php(.+)\?\>#siU','name_func_light',BBcode(smile(output($text['text'])))).'</div>
// ты же кодер,неужто непонимаешь куда вставить?

28 Дек 2010, 21:54
Istsam

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
Fashion

ну и в чем проблема? создай функцию,в которой применишь highlight_string

28 Дек 2010, 21:56
Ответить на тему