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つの関数にまとめれば、一通りの情報が取得でき、
さらに便利になりますね。
さらに、前回投稿したページランク取得やページキャプチャも加えれば、
簡易的なサイトチェックツールの出来上がりです。