新しいバージョン
繰り返しますが、これは質問の正しい答えではありませんが、エラーを回避すると、期待される結果が得られます。
get_headers は Agent なしで HTTP GET を実行するため、 moneysupermarket.com はそれを好まないため、 ini_setを使用してリクエストでデフォルトのユーザー エージェントを設定すると、すべてうまく機能します。
ini_set("user_agent","Mozilla custom agent");
$headers = get_headers("http://www.moneysupermarket.com/mortgages/", 1);
前
リクエストが適切にフォーマットされていない場合、moneysupermarket.com が接続をリセットしたようです。
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.moneysupermarket.com/mortgages/");
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla custom agent");
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);