Forum Webscript.Ru
Программирование => Регулярные выражения => Тема начата: Rodent от 31 Марта 2006, 03:26:21
-
Доброе время суток всем.
У меня к Вам вопрос. Я тут пишу что-то наподобии форума... я конечно понимаю, что нет смысла изобретать велосипед по-новой, когда есть столько альтернатив, но хочется чего-нить своего... да и процесс обучения на своих и других ошибках очень занимателен. :-))
Так вот мне нужно что-то наподобии vb-кода, что в общем и здесь присутствует.
На данный момент насочинял вот это
// обработка ссылок
$string = preg_replace("#(https?|ftp)://\\S+[^\\s.,>)\\];\'\\"!?]#",\'\\\\0\',$string);
// обработка почты
$string = eregi_replace (\'[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\', \'\\\\0\', $string);
// шрифт жирный
$string = eregi_replace (\'(\\[b])([^<>]+)(\\[/b])\', \'\\\\2\', $string);
// шрифт курсив
$string = eregi_replace (\'(\\[i])([^<>]+)(\\[/i])\', \'\\\\2\', $string);
// рисунок из определенной папки с определенными размерами
$string = eregi_replace (\'(\\[img])([a-z0-9]+)(.)(gif|jpg)(-)([0-9]+)(-)([0-9]+)(\\[/img])\', \'\', $string);
// ссылка сложная
$string = eregi_replace (\'(\\[u=)([a-zA-Z0-9_.:?&=]+)(])([^<>]+)(\\[/u])\', \'\\\\4\', $string);
// ссылка простая
$string = eregi_replace (\'(\\[u])([a-zA-Z0-9_.:?&]+)(\\[/u])\', \'\\\\2\', $string);
Вопрос правильно ли?
Так как если хочу вставить [u=http://gl.9may.ru/](http://gl1x100x100.jpg-100-100)[/u]
то получается какая-то бредятина... могу ли я при моем описаниии выше так делать? по-отдельности работает, вместе нет.
Поэтому прошу вашей помощи и оценки:
1. правильность написания
2. можно ли при такой обработке использовать вложенные тэги
-
ИМХО, не с шаблонами из пар тегов работать надо, обрабатывая всевозможные применения, а ненужное из самих тегов удалять, а потом в большинстве случаев делать:
[tag] заменить на
[/tag] заменить на
тогда и вложенные теги тоже будут обрабатываться, т.к. то, что между открытым и закрытым тегом вообще в расчет не попадает и замена будет строковой функцией проходить.
-
Не понял...
Yukko это ты про теги работы с текстом (жирный, курсив)
а остальное???