|
|
|
|
|
для: kasmanaft
(09.01.2007 в 14:56)
| | Супер. Кто знал, что дело было в одной букве. kasmanaft Respect | |
|
|
|
|
|
|
|
для: Webmaster Jay
(09.01.2007 в 13:15)
| | Попробуйте добавить модификатор "s"
"!\[quote=([[:alnum:]]+)\](.*)\[/quote\]!s"
|
И возможно, придется изменить жадность рег. выражения модификотором "U" - добавте если будет неправильно работать... нужно поэксперементировать. | |
|
|
|
|
|
|
|
для: Webmaster Jay
(09.01.2007 в 07:30)
| | Как оказалось, следующий код работает только для одного абзаца цитаты, поскольку (.*) означает любой символ (кроме переноса строки) любое количество раз.
$msg = preg_replace("!\[quote=([[:alnum:]]+)\](.*)\[/quote\]!",
"<div id=quote>Товарищ \\1 пишет:<br/>\\2</div>", $msg);
|
А как в таком случае сделать многострочный комментарий? Пытался в разные места подставить \n и \r\n - не пашет, почему-то. | |
|
|
|
|
|
|
|
для: kasmanaft
(08.01.2007 в 21:25)
| | Сделал через str_replace, все работает.
while(list($smilies_id, $code, $smile_url, $emoticon)=mysql_fetch_array($sql2))
{
$message = str_replace($code, "<img src='/images/smiles/$smile_url' border=0 alt='$emoticon'>", $message);
}
|
| |
|
|
|
|
|
|
|
для: Webmaster Jay
(08.01.2007 в 19:47)
| | Можно попробовать функцию preg_quote
http://php.net/ru/preg_quote
<?
echo preg_quote(':), ;), :х');
?>
|
| |
|
|
|
|
|
|
|
для: Webmaster Jay
(08.01.2007 в 07:12)
| | Задача усложняется. Необходимо парсить из текста коды смайлов. То есть имеется текст ($message) содержащий коды, н-р, и т.д. Необходимо прочитать их из базы и заменить на url картинок. Проблема в том, чтобы засунуть в регулярку переменную да так, чтобы при этом регулярка не ругалась на делимитер : или незакрытую скобку ), оба как понимаете из смайла :) и т.д.
Ругается на делимитер и скобку:
while(list($smilies_id, $code, $smile_url, $emoticon)=mysql_fetch_array($sql2))
{
$message = preg_replace($code, "<img src='/images/smiles/$smile_url' border=0 alt='$emoticon'>", $message);
}
|
Подскажите, пожалуйста, как быть. | |
|
|
|
|
|
|
|
для: Саня
(07.01.2007 в 21:08)
| | Большое спасибо, все сработало! | |
|
|
|
|
|
|
|
для: Webmaster Jay
(07.01.2007 в 20:34)
| | Например так:
<?
$msg = "[quote=Webmaster]Цитата1[/quote]
[quote=Devil]Цитата2[/quote]
[quote=Angel]Цитата3[/quote]";
$msg = preg_replace("!\[quote=([[:alnum:]]+)\](.*)\[/quote\]!",
"<div id=quote>Товарищ \\1 пишет:<br/>\\2</div>", $msg);
print $msg;
|
| |
|
|
|
|
|
|
| Коллеги, есть следующая проблема. В тексте для парсинга ($message) встречаются
следующие элементы:
[quote=Webmaster]Цитата1[/quote]
[quote=Devil]Цитата2[/quote]
[quote=Angel]Цитата3[/quote]
|
Отлавливаю их регулярками и заключаю текст в div
$message = ereg_replace('\[quote=[[:alnum:]]+\]', '<div id=quote>', $message);
$message = ereg_replace('\[/quote\]', '</div>', $message);
|
Таким образом внутри дива оказывается цитата. Задача: как обратиться отдельно к параметру Webmaster, Devil или Angel, т.е. то, что я интрепретирую как [[:alnum:]]+ (т.е. любые символы), чтобы написать его внутри дива рядом с самой цитатой. Нашел только обращение ко всему шаблону вида [quote=Webmaster] через \0, а нужен только Webmaster | |
|
|
|
|