PHP: вырезать кусок строки от символа до символа

SN
На сайте с 04.07.2013
Offline
84
6046

В базе есть текст вида:

Начало текста <div id="anonce">кусок текста</div> продолжение текста.

Мне нужно извлеч в переменную содержимое "кусок текста", т.е. то что находится начиная от тега <div id="anonce"> и до ближайшего </div>.

Пожалуйста помогите прописать функцию, а то я плохо разбираюсь в PHP и регулярных выражениях.

Спасибо!

[umka]
На сайте с 25.05.2008
Offline
456
#1

if (preg_match('#<div id="anonce">(.*)</div>#Uu',$text,$matches)) {
$kusok = $matches[1];
}
Лог в помощь!
G2
На сайте с 27.10.2009
Offline
62
#2


$pattern = '/>(.*)<\/div>$/';
$subject = '<div id="anonce">кусок текста</div>';
$matches = [];
preg_match($pattern, $subject, $matches);

echo $matches[1];
КакМаршрутник (http://goo.gl/forms/hMgaH0s9E5) — как маршрутник, но работает.
E1
На сайте с 25.10.2012
Offline
28
#3
'[umka:
;14132634']
if (preg_match('#<div id="anonce">(.*)</div>#u',$text,$matches)) {

$kusok = $matches[1];
}

может стоит вот так модернизировать?

if (preg_match('#<div id="anonce">(.*?)<\/div>#u',$text,$matches)) {

$kusok = $matches[1];
}
[umka]
На сайте с 25.05.2008
Offline
456
#4
exchanger_1:
может стоит вот так модернизировать?
if (preg_match('#<div id="anonce">(.*?)<\/div>#u',$text,$matches)) {
$kusok = $matches[1];
}

А это я малость промахнулся. Должен быть модификатор "U" (ungreedy) вместо "u" (utf-8). Хотя, "u" тоже можно оставить.

SN
На сайте с 04.07.2013
Offline
84
#5

Спасибо всем огромное! Это именно то что мне нужно!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий