[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярное выражение, сложное
superfoxter
Вообщем, проблема жуть. Читаю уже неделю, немогу вдуплить.

Я делаю форум, вернее доделываю и как и в этом форуме смайлы и форматирование таким образом открывающая скобка ([) потом тег а потом закрывающая (])
Пример: [изображение]http://infostrax.com.ua/img_page/24/20090914023351.jpg[/изображение]


Так вот, если одна картинка то все ок, но как бы не совсем там все, но...

Проблема вообще катастрофа если две картинки

[изображение]http://infostrax.com.ua/img_page/24/20090914023351.jpg[/изображение]

бла бла

[изображение]http://infostrax.com.ua/img_page/24/20090914023351.jpg[/изображение]

я обробатывал так:
$tags="#\[изображение\](.*)\[\/изображение\]#si";
$tags_replace = "<img src=\"\\1\" border=\"0\">";
$boby = preg_replace($tags, $tags_replace, $boby);

и на выходе получал:
http://infostrax.com.ua/img_page/24/20090914023351.jpg[/изображение]

бла бла

[изображение]http://infostrax.com.ua/img_page/24/20090914023351.jpg



Если кто-то сталкивался подскажите как быть. Мне бы в идеале было бы супер взять содержимое внутри [изображение][/изображение] и неважно одby тег или 10


Кто знает вот как на этом форуме обробатываеться текст сообщения??




Спустя 4 минуты, 21 секунда (18.09.2009 - 13:05) Gram написал(а):
HTML
function smail(text1)
{
document.form.message.value += text1;
}


PHP
// вывод смайлов
// рисуем им таблицу
echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">";

// открывает ряд
echo "<tr>";

// вывод смайлов в цикле
  for($i=1;$i<=20;$i++)
  {
  echo "<td align=\"center\" valign=\"middle\"><a href=\"#\" onClick=\"javascript:smail(' :".$i.": ')\"><img alt=\"\" src=\"../img/smiles/".$i.".gif\" border=\"0\"></a></td>";
  if($i%4==0){echo "</tr><tr>";}
  }

// закрываем ряд
echo "</tr>";

// закрываем таблицу
echo "</table>";


PHP
// преобразуем спецсимволы в смайлы
  $text=preg_replace("/:([\d]*):/is"," <img align=\"absmiddle\" src=\"../img/smiles/\\1.gif\" border=\"0\"> ", $text);

  // выводим пост темы
  echo $text;


имена смайлам давай 1.gif 2.gif и т.д.

Спустя 23 минуты, 36 секунд (18.09.2009 - 13:28) glock18 написал(а):
Код
"#\[изображение\](.*)\[\/изображение\]#si"


=>

Код
"#\[изображение\](.*?)\[\/изображение\]#si"


Спустя 3 дня, 41 минута, 51 секунда (21.09.2009 - 14:10) superfoxter написал(а):
так не работает. "#\[изображение\](.*?)\[\/изображение\]#si" Заменяет только если есть одно совпадение. А если их два???

пример:


[изображение]http://infostrax.com.ua/img_page/24/20090914023351.jpg[/изображение]

бла бла

[изображение]http://infostrax.com.ua/img_page/24/20090914023351.jpg[/изображение]

Спустя 32 минуты, 16 секунд (21.09.2009 - 14:43) glock18 написал(а):
Не знаю что вам нужно, если не это:

Спустя 1 час, 37 минут, 53 секунды (21.09.2009 - 16:20) Гость_hara написал(а):
слишком жадной выражение у вас )
- поставьте модификатор U
Код

"#\[изображение\](.*?)\[\/изображение\]#siU"
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.