У меня есть html для анализа, который содержит несколько div, тегов, ссылок и так далее. Я хочу удалить через PHP все div с определенным именем класса: «hide» (даже если у div есть несколько имен классов, он должен работать).
например
<div class="hide">somecontents, some tags, some subdivs</div>
но также
<div class="row background upperdiv hide green">somecontents, some tags, some subdivs</div>
Я пробовал это регулярное выражение:
$replacediv = "/(<div[^>]*class=\"(.*?)hide(.*?)\"[^>]*>*.*<\/div>)/i";
$response = preg_replace($replacediv, '', $response);
Но это не работает! Где я не прав?
Попробуйте это регулярное выражение (но если div содержит еще один div, у вас могут возникнуть проблемы):
$replacediv = '/<div[^>]+class="[^>]*hide[^>]*"[^>]*>.*?<\/div>/i';
$response = preg_replace($replacediv, '', $response);
Других решений пока нет …