Как заменить текст на несколько строк, используя preg_replace

Привет, у меня есть следующий контент на странице html, который растягивает несколько строк

<div class="c-fc c-bc" id="content"> <span class="content-heading c-hc">Heading 1 </span><br /> The Home Page must provide a introduction to the services provided.<br /> <br /> <span class="c-sc">Sub Heading</span><br /> The Home Page must provide a introduction to the services provided.<br /> <br /> <span class="c-sc">Sub Heading</span><br /> The Home Page must provide a introduction to the services provided.<br /> </div> 

Мне нужно заменить everthing между <div class="c-fc c-bc" id="content"> и </div> с помощью настраиваемого текста

Для этого я использую следующий код, но он не хочет работать, если он несколько строк, но работает, если evertinh находится в одной строке

 $body = file_get_contents('../../templates/'.$val['url']); $body = preg_replace('/<div class=\"c\-fc c\-bc\" id=\"content\">(.*)<\/div>/','<div class="c-fc c-bc" id="content">abc</div>',$body); 

Я что-то упускаю?

Если это не HTML, я бы сказал вам использовать модификатор DOTALL , чтобы изменить значение . from 'match all except new line' to 'everything all':

 preg_replace('/(.*)<\/div>/s','abc',$body); 

Но это HTML, поэтому вместо этого используйте парсер HTML.

это флаг «s», он позволяет. захватить новые строки

Можно использовать регулярное выражение, чтобы вырезать фрагменты html-данных, но вам нужно обернуть html пользовательскими тегами html, которые игнорируются браузерами. Например:

 <?php $html=' <div>This will be shown</div> <custom650 rel="nofollow"> <p class="subformedit"> <a href="#" class="mylink">Link</a> <div class="morestuff"> ... more html in here ... </div> </p> </custom650> <div>This will also be shown</div> '; 

Чтобы разбить теги атрибутами rel = "nofollow", вы можете использовать следующее регулярное выражение:

 $newhtml = preg_replace('/<([^\s]+)[^>]*rel="nofollow"[^>]*>.*?<\/\1>/si', '', $html); 

По опыту запустите пользовательские теги на новой строке. Несомненно, взлом, но может помочь кому-то.