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

Форум PHP

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

 

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

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

тема: Подсветка кода

Сообщения:  [1-10]   [11-15] 

 
 автор: cheops   (16.08.2006 в 22:39)   письмо автору
 
   для: Lelik   (16.08.2006 в 15:20)
 

Мы для этого используем следующий код
<?php
    $text 
"[code]";
    
$lastocc 0;
    
$sndocc 1;
    
$result "";
    while(
$sndocc)
    {
      
$fstocc strpos($postbody,"[code]",$lastocc);
      
$sndocc strpos($postbody,"
",$fstocc);
if(($fstocc>0 && $sndocc>0 && $lastocc>0) || ($fstocc >= 0 && $sndocc>0 && $lastocc == 0))
{
$result .= nl2br(htmlspecialchars(substr($postbody,$lastocc,$fstocc - $lastocc)));
$result .= "<table border=0 ><tr><td class=codeblock>" .
highlight_string(substr($postbody,$fstocc + 6,$sndocc - $fstocc - 6),true)."</td></tr></table>";
$lastocc = $sndocc + 7;
}
else
{
$result .= nl2br(htmlspecialchars(substr($postbody,$lastocc,strlen($postbody)-$lastocc)));
break;
}
}
$postbody = $result;

?>[/code]
но можно использовать и другие средствам, например, регулярные выражения.

   
 
 автор: Lelik   (16.08.2006 в 15:20)   письмо автору
 
   для: cheops   (16.08.2006 в 12:21)
 

а как это сделать - не подвергать обработке htmlspecialchers() код(???), - я чет не догоняю. Просто у меня одна функция все ББ теги трансформирует

   
 
 автор: cheops   (16.08.2006 в 12:21)   письмо автору
 
   для: Lelik   (15.08.2006 в 14:43)
 

Обычно код вообще не подвергают обработке htmlspecialchers(), а помещают в тэги <pre></pre>, чтобы он выводился как есть. А обрабатывают htmlspecialchers() всё вне кода.

   
 
 автор: Lelik   (15.08.2006 в 14:43)   письмо автору
 
   для: Trianon   (15.08.2006 в 09:31)
 

но ведь я в предыдущем примере привел код с этого сайта из статьи о подсветке кода - там вроде анулируется дествие htmlspecialchers.

   
 
 автор: Trianon   (15.08.2006 в 09:31)   письмо автору
 
   для: Lelik   (15.08.2006 в 01:19)
 

"Помоги себе сам!": htmlspecialchars делается непосредственно перед выводром в браузер.

   
 
 автор: Lelik   (15.08.2006 в 01:19)   письмо автору
 
   для: Lelik   (14.08.2006 в 19:08)
 

Люди, что никто не поможет?...

   
 
 автор: Lelik   (14.08.2006 в 19:08)   письмо автору
 
   для: Lelik   (14.08.2006 в 01:36)
 

Применил такой код

<?php
preg_match_all
("|\[code\](.+?)\[\/code\]|is"$theme$oute);
        foreach(
$oute[1] as $val)
           {                                                                 
              
$theme str_replace('[code]','',$theme);
              
$theme str_replace('[\/code]','',$theme);
              
$valstripslashes($val);
              if(!
strpos($val,"<?") && substr($val,0,2)!="<?")
                 {
                    
$val="<?php\n".trim($val)."\n?>";
                 }
              
$val trim($val);
              
$theme str_replace($val,
                                   
'<table class="txt_tab" width="80%" align="center" boder="0" bgcolor="#ACACAC">
                                    <tr valign="top"><td>'
.highlight_string($valtrue).'</td>
                                    </tr></table>'
$theme);
           }
?>

выводится только строка записанная меж тего код без подсветки и без фона таблицы

   
 
 автор: Lelik   (14.08.2006 в 01:36)   письмо автору
 
   для: Lelik   (14.08.2006 в 01:22)
 

а с испоьзованием htmlsprcialchars нельзя сделать?

   
 
 автор: Lelik   (14.08.2006 в 01:22)   письмо автору
 
   для: BAHO   (14.08.2006 в 01:22)
 

ага

   
 
 автор: BAHO   (14.08.2006 в 01:22)   письмо автору
 
   для: Lelik   (13.08.2006 в 23:24)
 

а может где то перед этим htmspecialchars прошёлся?

   

Сообщения:  [1-10]   [11-15] 

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

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