Скорее всего, вам нужно указать многострочный модификатор, т. Е. s
$result2 = preg_replace('#<div class="remove">(.*?)</div>#s', ' ', $result);
Или вы можете использовать [\s\S]
вместо .
для сопоставления по нескольким строкам.Итак,
$result2 = preg_replace('#<div class="remove">([\s\S]*?)</div>#', ' ', $result);
Кроме того, я бы обычно использовал \s+
вместо добавления пробела, на случай, если html имеет несколько пробелов, например:
$result2 = preg_replace('#<div\s+class="remove">([\s\S]*?)</div>#', ' ', $result);
Вы можететакже попробуйте что-нибудь подобное для обработки нескольких атрибутов и других типов кавычек:
$result2 = preg_replace('#<div\b[^>]+\bclass\s*=\s*[\'\"]remove[\'\"][^>]*>([\s\S]*?)</div>#', ' ', $result);
* БЫСТРОЕ РЕДАКТИРОВАНИЕ: я добавил \b
, чтобы идентифицировать границу слова, поэтому такой атрибут, как data-class
won 'вместо атрибута class
.