Forum Webscript.Ru

Программирование => Регулярные выражения => Тема начата: Rodent от 31 Марта 2006, 03:26:21

Название: vb-код своими руками
Отправлено: 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. можно ли при такой обработке использовать вложенные тэги
Название: vb-код своими руками
Отправлено: Yukko от 03 Апреля 2006, 00:28:57
ИМХО, не с шаблонами из пар тегов работать надо, обрабатывая всевозможные применения, а ненужное из самих тегов удалять, а потом в большинстве случаев делать:
[tag] заменить на
[/tag] заменить на

тогда и вложенные теги тоже будут обрабатываться, т.к. то, что между открытым и закрытым тегом вообще в расчет не попадает и замена будет строковой функцией проходить.
Название: vb-код своими руками
Отправлено: Rodent от 04 Апреля 2006, 01:10:11
Не понял...
Yukko это ты про теги работы с текстом (жирный, курсив)
а остальное???