PHP

Подсветка PHP-кода в сообщениях

К примеру, у вас есть форум типа vBulletin, где можно подсвечивать код, если его выделить специально:
 любой код 
. В итоге, после этого (при просмотре сообщения), получается красивый и цветной php-код. И так, если вы хотите, чтобы все куски между
..
и <?..?> воспринимались как код и раскрашивались, то это можно сделать довольно легко.
Текст программы.
   // подавить предупреждения (в highlight_string есть глюки)
   error_reporting(0);

   // функция подсвечивания одного куска текста
   function _my_($s,$a1,$a2) {
      if ($a1!="<?") { $a1="<?"; $a2="?>"; }
      $s=str_replace("\"",""",$s);
      ob_start();
      highlight_string($a1.$s.$a2);
      $s=ob_get_contents();
      ob_end_clean();
      return $s;
   }

   // ищем в тексте все куски между <?... или [PHP]...
   $str=preg_replace("!([php]|<?)(.*?)(
|?>)!ise","_my_('\2','\1',
'\3')",$str);

echo $str;

?>[/PHP]
Как видно, все, что было между спец.строками подсветилось, а посторонний текст никак не изменился. Если вы собираетесь применять для форума, то подумайте и о переходах на новые строчки. Если у вас все сообщение - это сплошной код, то используйте highlight_string напрямую, без поиска <?..?> в коде...
Теги:
Подсветка
Добавлено: 16 Мая 2018 20:30:32 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...