PCREの仕様が変わったとか、バグ修正されて挙動が変わったとか
そんなことが無いのかと思ってコードは省略しますた。

if(preg_match("/title>(.*)<\/title/i", $contents, $regs)){
$title = $regs[1];
}
else{
$title = "No Title";
}
return $title;

で、全部 No Title になる。