|
|
|
|
|
для: (Sandr)
(22.06.2011 в 21:07)
| | Для этого потребуется разбить текст на кусочки и обрабатывать каждый кусочек отдельно. | |
|
|
|
|
|
|
|
для: (Sandr)
(22.06.2011 в 21:07)
| | Задачка нетривиальная и не имеет, на сколько мне известно, надежного решения через регулярки. Я решал похожую задачу на Perl, если будет полезно. Попробуйте почитать.
Если коротко, то придется прибегать к плейсхолдерам. Сначала собираете все <code>, и замещаете их в тексте на метки. Потом парсите как обычно, а потом заменяете метки соответствующими <code>. Как-то так.
Иначе вряд ли получится. | |
|
|
|
|
|
|
| Есть простенькая функция вида
function bbcodes($text)
{
$regul[]='~\[b\](.+)\[/b\]~mi';
$regul[]='~\[i\](.+)\[/i\]~mi';
$vstav[]='<b>\\1</b>';
$vstav[]='<i>\\1</i>';
$text = preg_replace($regul,$vstav,$text);
}
Как прописать в регулярке так, чтоб если добавить на страницу тэг [code][/code ], то содержимое тэга не попадало под действие других регулярок.
Т.е. если я напишу [ code][b ]жирный[ /b][/ code ] то выведет [b ]жирный[ /b], а не жирный .
Т.е. нужно сделать так, чтоб внутри нужного бб-кода все остальные бб-коды не действовали.. | |
|
|
|
|