PHPでMETA情報や各種タグ内文字列を取得しよう

PHPに、めちゃくちゃ便利な関数「get_meta_tags()」があります。
この関数は、第一引数にHTMLのローカルファイルパスやURLを指定して実行すると、
METAタグのname属性をkeyに、値をvalueにした連想配列を返してくれます。
例えば、index.html内が以下のようなMETAの場合、

<meta name="author" content="name">
<meta name="keywords" content="php documentation">
<meta name="DESCRIPTION" content="a php manual">

こうすることで、

$data = get_meta_tags('index.html')

こんな感じでデータを取得できます。

echo $data['author'];       // name
echo $data['keywords'];     // php documentation
echo $data['description'];  // a php manual

※name属性は小文字に変換されるようです。

このようにめちゃくちゃ便利なのですが、使い道としては・・・・
SEOの内部対策として、ページ情報を管理するためという場合が多いんじゃないでしょうか。
となると、引数はローカルファイルじゃなくて、URLになるでしょうし、
TITLEやH1などのテキストも取得したいですよね。

そんな時は、

$res = file_get_contents($url);
$res = mb_convert_encoding($res, "utf-8", "auto");

//TITLE
if(preg_match("/<title>(.*?)<\/title>/i", $res, $matches)){
	$data['title'] = $matches[1];
}

//H1
if(preg_match("/<h1>(.*?)<\/h1>/i", $res, $matches)){
	$data['h1'] = $matches[1];
}

なんてのも加えて、1つの関数にまとめれば、一通りの情報が取得でき、
さらに便利になりますね。

さらに、前回投稿したページランク取得やページキャプチャも加えれば、
簡易的なサイトチェックツールの出来上がりです。