How to replace text over multiple lines using preg_replace
php
Solution
If this weren't HTML, I'd tell you to use the DOTALL modifier to change the meaning of `.` from 'match everything except new line' to 'match everything':
preg_replace('/(.*)<\/div>/s','abc',$body);
But this is HTML, so use an HTML parser instead.
Problem
Hi have the following content within an html page that stretches multiple lines ``` <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> ``` I need to replace everthing between `<div class="c-fc c-bc" id="content">` and `</div>` with custom text I use the following code to accomplish this but it does not want to work if it's multiple lines, but works if evertinh is in one line ``` $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); ``` Am I missing something?