|
|
|
| Уже полдня не могу решить проблему с цитатами в комментариях.
<?php
$text="Бла бла бла…
User писал:
> цитата
> и ещё
> и ещё…";
print '<pre>'.preg_replace("#\n > (.+)\n#isU","<b> > \\1</b>\n","\n".$text."\n").'</pre>';
?>
|
Смысл: если строка комментария начинается с “ > “ – то это – цитата, а цитату нужно выделить.
Но регулярное выражение выделяет каждую вторую строку... В итоге получается:
Бла бла бла…
User писал:
> цитата
> и ещё
> и ещё...
Смотрю в исходный код страницы, а там:
Бла бла бла…
User писал:
<pre>
<b> > цитата
</b>
> и ещё
<b> > и ещё...</b>
</pre>
Подозрение падает на то, что </b> после слова “цитата” переносится на другую строку.
Как можно сделать так, чтобы </b> не переносился? | |
|
|
|
|
|
|
|
для: <?Mike?>
(07.05.2008 в 02:52)
| | Уберите модификатор U. | |
|
|
|
|
|
|
|
для: AcidTrash
(07.05.2008 в 09:45)
| | а проще как-то использовать /m
хотя-бы так:
<?php
$text="Бла бла бла…
User писал:
> цитата
> и ещё
> и ещё…";
print '<pre>'.preg_replace("#((?:^\s*>.*$\r?\n)+)#m", "<b>\\1</b>", $text."\n").'</pre>';
?>
| но можно как-то ещё проще | |
|
|
|