|
|
|
| народ, нкжна помощ, у меня такая вот проблема с цитатой, как я только вставляю BBCode
[quote=username]text[/quote] все работатет, но если только я вставляю цитату в цитату, [quote=username][quote=username]text[/quote] text[/quote] то первая цитата обрабатывается а вторая нет, в чем проблема?
Данные цитаты обрабатываются PHPкодом
$msg_users = preg_replace("/\[quote=(.+?)\](.+?)\[\/quote\]/", "<div>Цитата<strong> \\1</strong>:</div><div>\\2</div>", $msg_users);
|
| |
|
|
|
|
|
|
|
для: saider
(26.05.2010 в 01:01)
| | После последнего найденного вхождения, регулярка продолжает работать дальше. Т.е. она находит [quote=username][quote=username]text[/quote] а дальше остаётся только text[/quote] | |
|
|
|
|
|
|
|
для: Gubichev
(26.05.2010 в 01:21)
| | а что для этого нужно сделать чтобы такого небыло? просто уже бошка не работает с этим сайтом из - за этого и спрашиваю :) | |
|
|
|
|
|
|
|
для: SaIdEr
(26.05.2010 в 01:58)
| | все, я сам разобрался, вопрос отменяю. Там надо было сделать так:
$quote = preg_replace( "#\[quote=(.+?)\]#is", "<div class=\"quote_name\">Цитата <STRONG>\\1</STRONG></div><div class=\"quote_message\">", $msg_users );
$msg_users = preg_replace( "#(.+?)\[\/quote\]#is","\\1</div>", $quote);
|
Вот только если вдруг чтото я не верно сделал, то скажите что именно. | |
|
|
|
|
|
|
|
для: SaIdEr
(26.05.2010 в 13:49)
| |
<?php
$msg_users = '[quote=<script>alert("Hello, XSS!\n"+document.cookie)</script>]';
$quote = preg_replace( "#\[quote=(.+?)\]#is", "<div class=\"quote_name\">Цитата <STRONG>\\1</STRONG></div><div class=\"quote_message\">", $msg_users );
$msg_users = preg_replace( "#(.+?)\[\/quote\]#is","\\1</div>", $quote);
echo $msg_users;
|
| |
|
|
|