j'avance : ce qui pose probleme ici :  
if (preg_match('#(<body)(.*)(</body> )#i',$mapage, $matches))
 
c'est le  "/" de </body>.
 
car if (preg_match('#(<body)(.*)  fonctionne bien.
 
donc j'echape le slash, if (preg_match('#(<body)(.*)(<\/body> )#i',$mapage, $matches))
 
rien à faire, ça marche pas...
 
si quelqun pouvais m'aiguiller, ça serait avec grand plaisir...