|
|
|
| Вообщем позаимствовал я кусок кода из файла 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 в 00:04)
| | Вы наверное не понили вопроса
Сейчас один эксперемент
<?php
chdir("../");
include"header.php";
[code]
# Работает?
|
[/code] | |
|
|
|
|
|
|
|
для: JIEXA
(03.02.2005 в 01:56)
| | Вот видите глюк, как его убрать? | |
|
|
|
|
|
|
|
для: JIEXA
(03.02.2005 в 01:56)
| | Это в общем не глюк, а так и задумывалось... так как вложенных листингов на форуме не бывает, а вот несколько подряд идущих бывают сплошь и рядом, теперь если мы реализуем схему вложенных листингов, то глюки будут при последовательном помещении листингов
[php]
[/php]
текст
[php]
[/php]
Внутренние тэги при этом будут не прикаянными, а "текст" - будет интерпретироваться как листинг. Не думаю, что это будет удобно посетителям. | |
|
|
|