cURL 関数を使うと細かいコントーロールが可能な状態で、WEB 上のコンテンツにアクセスする事ができます。 CURLOPT_NOBODY で、本文を削除しています。CURLOPT_HEADER を指定しているので、ヘッダー情報のみを取得できます。 その結果から、正規表現で良く使われる情報を取り出しています。
<?php $ch = curl_init($_GET['url']); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // ********************************************************* // https 用 // ********************************************************* curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); $data = curl_exec($ch); curl_close($ch); if ($data === false) { echo 'cURL failed'; exit; } $result = array(); if (preg_match('/(Content-Type: .+)/i', $data, $matches)) { $result[] = $matches[1]; } if (preg_match('/(charset.+)/i', $data, $matches)) { $result[] = $matches[1]; } if (preg_match('/^HTTP\/1\.[01] (\d\d\d)/i', $data, $matches)) { $result[] = $matches[1]; } if (preg_match('/Content-Length: (\d+)/i', $data, $matches)) { $result[] = $matches[1]; } header( "Content-Type: text/plain" ); header( "pragma: no-cache" ); header( "Expires: Wed, 31 May 2000 14:59:58 GMT" ); header( "Cache-control: no-cache" ); print_r($result); print "----------------------------------------------------------------\n"; print $data; ?>
関連する記事 任意のサイトのソースコードを表示させる PHP
タグ:Curl