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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Небольшая модернизация фишки [code] и [/code]
 
 автор: JIEXA   (03.02.2005 в 00:04)   письмо автору
 
 

Вообщем позаимствовал я кусок кода из файла utils.php форума разработанного студией SoftTime и получилось так:
# Обработка тегов [php] И [/php]
function specialtegs($txt)
{
              error_reporting(0);
              
              $lastocc = 0;
              $sndocc = 1;
              $result = "";
              while($sndocc)
              {
                      $fstocc = strpos($txt,"[php]",$lastocc);
                      $sndocc = strpos($txt,"[/php]",$fstocc);
                      if(($fstocc>0 && $sndocc>0 && $lastocc>0) || ($fstocc >= 0 && $sndocc>0 && $lastocc == 0))
                      {
                              $result .= nl2br(htmlspecialchars(substr($txt,$lastocc,$fstocc - $lastocc)));
                              $result .= "<table border=0 ><tr><td class=codeblock>".highlight_string(substr($txt,$fstocc + 6,$sndocc - $fstocc - 6),true)."</td></tr></table>";
                              $lastocc = $sndocc + 7;
                      }

                      else
                      {
                              $result .= nl2br(htmlspecialchars(substr($txt,$lastocc,strlen($txt)-$lastocc)));
                              break;
                      }

              }
}

Всё работает, но если написать так:
[php]
[php]
[/php]
[/php]
То получится не разбериха
Как сделать так, чтобы читался тока верхний [php] и нижний [/php], а средние выводились?

   
 
 автор: JIEXA   (03.02.2005 в 01:56)   письмо автору
 
   для: JIEXA   (03.02.2005 в 00:04)
 

Вы наверное не понили вопроса
Сейчас один эксперемент

<?php
chdir
("../");
include
"header.php";
[
code]
# Работает?

[/code]

   
 
 автор: JIEXA   (03.02.2005 в 01:56)   письмо автору
 
   для: JIEXA   (03.02.2005 в 01:56)
 

Вот видите глюк, как его убрать?

   
 
 автор: cheops   (03.02.2005 в 13:37)   письмо автору
 
   для: JIEXA   (03.02.2005 в 01:56)
 

Это в общем не глюк, а так и задумывалось... так как вложенных листингов на форуме не бывает, а вот несколько подряд идущих бывают сплошь и рядом, теперь если мы реализуем схему вложенных листингов, то глюки будут при последовательном помещении листингов
[php]
[/php]
текст
[php]
[/php]
Внутренние тэги при этом будут не прикаянными, а "текст" - будет интерпретироваться как листинг. Не думаю, что это будет удобно посетителям.

   
Rambler's Top100
вверх

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