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?
.*, which will cause the very last</div>end-tag on the entire page to be matched. Maybe you want the first</div>end-tag in which case you'd need a non-greedy.*?. If you want the matching</div>end-tag, there is no way regex can work that out. Did we mention, don't use regex to parse HTML?