Покинул форум
Сообщений всего: 21
Дата рег-ции: Окт. 2009
Помог: 0 раз(а)
Uchkuma пишет:
PHP:
скопировать код в буфер обмена
echo preg_replace('#\[sr\](.*)\[/sr\]#U', '<img src="$1.gif">', 'как то раз летом я пошел в лес [sr]3[/sr] и заблудился');
а как в $1 окажется именно то число коорое в [sr]3[/sr] ???
Uchkuma
Отправлено: 15 Августа, 2010 - 00:16:51
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
ссылка на подмаску, вроде как.
movEAX
Отправлено: 15 Августа, 2010 - 00:26:40
Частый посетитель
Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Uchkuma пишет:
А вот ваше решение как раз не верно. Что мы получим, если в тексте попадется лишний открытый или закрытый тег [sr]?
В действительности осуществлять прямые замены необходимо с помощью тех функцию которые будет просматривать соответствующее положение в подстроке только в одной итерации или запоминать позицию - иначе может произойти вторичная замена или затронуться лишние компоненты В случае замены без использования шаблона в таком случае будет полезна функция strtr - в то время как обычная str_replace некорректно работает с пересекающимися заменами
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
dikiyprapor50
Отправлено: 15 Августа, 2010 - 22:52:21
Новичок
Покинул форум
Сообщений всего: 21
Дата рег-ции: Окт. 2009
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
Не проще было регуляркой? Не знаю, сколько микросекунд вы выиграли данной конструкцией и выиграли ли вообще, но обслуживать такой код точно мало удовольствия.
movEAX
Отправлено: 16 Августа, 2010 - 00:07:06
Частый посетитель
Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009
Помог: 16 раз(а)
Uchkuma пишет:
А вот ваше решение как раз не верно. Что мы получим, если в тексте попадется лишний открытый или закрытый тег [sr]?
В таком случае можно написать какой-нибудь валидатор.
----- армия.. самое убогое место
JustUserR
Отправлено: 16 Августа, 2010 - 01:09:22
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
movEAX пишет:
В таком случае можно написать какой-нибудь валидатор.
Для проверки на предмет правильности расстановки всех открывающих и закрывающих тегов а также вложенных в них элементов - как правило используется обрабатывающая функции и стек - вы осуществляете последовательный просмотр открывающих тегов в строке и их сохранене в стековый массив - и соответственно при нахождении закрывающего тега он должен быть равен тому который находится в последней позиции в стеке - обратная ситуация свидительствует о направильной расстановке и вложении тегов
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.