Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Подсветка синтаксиса HTML

Сообщения:  [1-3] 

 
 автор: JIEXA   (19.03.2005 в 18:40)   письмо автору
 
   для: cheops   (19.03.2005 в 18:36)
 

сенкс

   
 
 автор: cheops   (19.03.2005 в 18:36)   письмо автору
 
   для: JIEXA   (19.03.2005 в 17:32)
 

Это код следует оформить в виде функции light() и использовать функцию преобразования тэгов, например, из нашего форума LiteForum
<?php
function post_work_up($postbody)
{
    
// Обрабатываем теги [html], [/html]
    
$lastocc 0;
    
$sndocc 1;
    
$result "";
    while(
$sndocc)
    {
      
$fstocc strpos($postbody,"[html]",$lastocc);
      
$sndocc strpos($postbody,"[/html]",$fstocc);
      if((
$fstocc>&& $sndocc>&& $lastocc>0) || ($fstocc >= && $sndocc>&& $lastocc == 0))
      {
        
$result .= nl2br(htmlspecialchars(substr($postbody,$lastocc,$fstocc $lastocc)));
        
$result .= "<table border=0 ><tr><td class=codeblock>".light(substr($postbody,$fstocc 6,$sndocc $fstocc 6))."</td></tr></table>";
        
$lastocc $sndocc 7;
      }
      else
      {
        
$result .= nl2br(htmlspecialchars(substr($postbody,$lastocc,strlen($postbody)-$lastocc)));
        break;
      }
    }
    return 
$result;
 }
?>

Функция принимает единственный параметр с тестом, содержащим тэги [html][/html] и возвращает уже текст, в котором выделенные блоки подсвечены.

   
 
 автор: JIEXA   (19.03.2005 в 17:32)   письмо автору
 
 

Ниже приведённый код, подсвечивает синтаксис хтмл кода. Как сделать, чтобы он подсвечевал только код находящийся в спец тегах [html][/html]
<?php
 $txt 
str_replace"<" "&lt;"  $txt);
 
$txt str_replace">" "&gt;"  $txt);
 
$txt str_replace"\"""&quot;"$txt);
 
$txt preg_replace"!&lt;\!--(.+?)(//)?--&gt;!s""&#60;&#33;<span style='color:red'>--\\1--\\2</span>&#62;"$txt);
 
$txt preg_replace"#&lt;([^&<>]+)&gt;#s""&lt;<span style='color:blue'>\\1</span>&gt;"$txt);
 
$txt preg_replace"#&lt;([^&<>]+)=#s""&lt;<span style='color:blue'>\\1</span>="$txt);
 
$txt preg_replace"#&lt;/([^&]+)&gt;#s""&lt;/<span style='color:blue'>\\1</span>&gt;"$txt);
 
$txt preg_replace"!=(&quot;|')([^<>])(&quot;|')(\s|&gt;)!s""=\\1<span style='color:purple'>\\2</span>\\3\\4"$txt);
 
$txt str_replace"\n""<br>"str_replace("\r\n""\n"$txt));
 print 
"<table border=0 ><tr><td class='code-html'><pre>".$txt."</pre></td></tr></table>";
?>

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования