- var_dump: documentation ( source)
- preg_match: documentation ( source)
<?php
$body = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><META content="text/html; charset=windows-1251" http-equiv=Content-Type><META name=GENERATOR content="MSHTML 11.00.9600.17105"><STYLE></STYLE></HEAD><BODY bgColor=#ffffff><FONT size=2><DIV align=center><TABLE borderColor=#0e0016 cellSpacing=2 borderColorDark=#ba0000 cellPadding=0 width=860 bgColor=#f5f5fa borderColorLight=#ba0000 border=0></TABLE></BODY></HTML>';
$body2 = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><META content="text/html; charset=windows-1251" http-equiv=Content-Type><META name=GENERATOR content="MSHTML 11.00.9600.17105"><STYLE></STYLE></HEAD><BODY bgColor=#ffffff><FONT size=2><BODY>test</BODY><DIV align=center><TABLE borderColor=#0e0016 cellSpacing=2 borderColorDark=#ba0000 cellPadding=0 width=860 bgColor=#f5f5fa borderColorLight=#ba0000 border=0></TABLE></BODY></HTML>';
$pattern = "#.*?(<body.*?>)?(<body.*?>.*?</body>).*?#i";
preg_match($pattern, $body2, $matches);
var_dump($matches);