|
|
|
|
|
для: cheops
(28.06.2006 в 15:03)
| | - | |
|
|
|
|
|
|
|
для: cheops
(28.06.2006 в 15:03)
| | Спасибо я уже нашёл этот код, теперь разбираю(перевожу на человеческий язык ) дабы понять алгоритм обработки и в будущем не тормозить
P.S. на данном этапе мне не важны результаты, я хочу понять язык(на примерах быстее разберёшся чем в теории) и только после этого примусь за реальный проект. | |
|
|
|
|
|
|
|
для: hell_riser
(28.06.2006 в 01:38)
| | Обработка таких тэгов может производится при помощи кода
<?php
// Обрабатываем теги <code>, </code>
$text = "[code]";
$lastocc = 0;
$sndocc = 1;
$result = "";
while($sndocc)
{
$fstocc = strpos($postbody,"<code>",$lastocc);
$sndocc = strpos($postbody,"</code>",$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;
?>
|
| |
|
|
|
|
|
|
|
для: valenok
(28.06.2006 в 09:16)
| | Спасибо, скачал бесплатную версию этого форума, пороюсь ещё и там | |
|
|
|
|
|
|
|
для: hell_riser
(28.06.2006 в 01:38)
| | не знаю..)
[поправлено модератором] | |
|
|
|
|
|
|
|
для: valenok
(28.06.2006 в 01:01)
| | >str_replace ?
Ну уж простите первый реплес, что в голову пришёл тот и прописал.
А вообще-то важен результат т.е. выборка и формат.
Подскажите хоть как на этом форуме это происходит в плане ф-ция подсветки синтаксиса.
Ведь принцип тот же, сдесь выбирается текст между тегами <code> и </code> с последующей обработкой highlight_string, ежели я правильно понял. | |
|
|
|
|
|
|
|
для: hell_riser
(27.06.2006 в 13:53)
| | str_replace ? | |
|
|
|
|
|
|
|
для: cheops
(27.06.2006 в 01:40)
| | Их набор ограничен(спец символы типа$,%,^,@ и т.д) и обязательно такого формата <символ>.
Что-то я в синтаксисе ни черта не разберусь, ваш пример на сколько я понял говорит о том, что выражению соответствуют как теги так и все символы заключенные в эти теги, мне теги не нужны они являются лишь признаком того, что этот текст надо отформатировать т.е на сколько я понимаю надо поставить символ отрицания для них а вот где, я читал что если поставить класс так (^\W_), то это говорит о том , что классу соответствуют все символы кроме знака подчёркивания, а как сделать в этом случае.
А вообще-то можно ли после того как выбрали элементы массива по рег.выражнию записать так: $arr = "<table align='center' color='red' background='../templates/img/some.gif'><tr><td>$out</td></tr></table>";
А потом просто заменить в строке оригинала прег реплейсом?
P.S. в начале эти символы обрабатываются addslashes | |
|
|
|
|
|
|
|
для: hell_riser
(26.06.2006 в 22:22)
| | Хм... т.е. они зарнее не определены? Или их набор ограничен? | |
|
|
|
|
|
|
|
для: cheops
(26.06.2006 в 20:00)
| | По сути это могут быть даже не теги, а просто определённые символы и мне необходимо текст заключённый в эти символы отформатировать иначе чем остальной текст.
Т.е. осталось внести в массив текст не соответствующий рег.выражению и вывести весь тект заново отформатированый | |
|
|
|
|