Вырезать теги div

MM
На сайте с 19.02.2012
Offline
34
519

Собственно копаюсь, в программировании не силен. Есть такой код в парсере:

	preg_match('#<h1 class="document-title" itemprop="name">\s(.*?)</h1>#ius', $html, $m_name);

if(!empty($m_name[1]))
$object['name'] = utf2cyr($m_name[1]);

Собственно внутри <h1> расположены <div>название</div>, каким образом можно убрать div внутри, чтобы осталось только название.

edogs software
На сайте с 15.12.2005
Offline
775
#1
MakeMoney:
Собственно копаюсь, в программировании не силен. Есть такой код в парсере:

	preg_match('#<h1 class="document-title" itemprop="name">\s(.*?)</h1>#ius', $html, $m_name);

if(!empty($m_name[1]))
$object['name'] = utf2cyr($m_name[1]);


Собственно внутри <h1> расположены <div>название</div>, каким образом можно убрать div внутри, чтобы осталось только название.

Как-то так

	preg_match('#<h1 class="document-title" itemprop="name">\s(.*?)</h1>#ius', $html, $m_name);

if(!empty($m_name[1]))
$object['name'] = preg_replace('~<div>(.*?)</div>~si','$1',utf2cyr($m_name[1]));
Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
S7
На сайте с 15.08.2010
Offline
79
#2
MakeMoney:
убрать div внутри, чтобы осталось только название


$T = '(?:div|span|a)'; // удаляемые тэги, или заменить на '(?:[^>]*)' если нужно удалить любой тэг
if (preg_match("~(<h1[^>]*>)\s*(?:<".$T."[^>]*>)?(.*?)(?:</".$T.">)?\s*(</h1>)~uis", $html, $m)) {
$object['name'] = utf2cyr($m[1].trim($m[2]).$m[3]);
}

как вариант: без лишней проверки empty() и с перечислением удаляемых тэгов если они есть в h1.

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