2510月/16
見出しタグ内のテキストをtitleタグに設定
やりたいことは至って単純なんです。
- headerやfooterはincludeして使いまわすため、header内のtitleタグを各ページに合わせて変化させたい。
- 各ページには、見出しタグh2でページタイトルがついている。
- だから、それを取ってきてtitleタグに自動で書き加えたら楽な気がする!
jQueryなら簡単なんですが、titleをDOMで出すのは流石に良心が痛むので(SEO的に)、phpでやることにしてググってみました。
↓↓ 辿り着いたありがたいサイトを参考にしてみました。
PHPでWEBページのタイトルを抜き出すサンプル
function get_pagetitle(){ $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //当該ページ $html = file_get_contents($url); //HTML取得 // ↓マルチバイトencode。今回はもとからutf-8なので不要。 // $html = mb_convert_encoding($html, mb_internal_encoding(), "auto" ); if ( preg_match( "/<h2 class=\"page_title\">(.*?)<\/h2>/i", $html, $matches) ) { $pagetitle = $matches[1]; //h2を丸ごと取得 } else { return false; } return strip_tags($pagetitle); //タグを除いて、中身だけ返す }
できたー!
できた……が、file_get_contentsを使わずに、現在のページを舐めることはできないの!?
そして、わかっていたけどpreg_matchの重さは異常!!
たった一つのタグを探し出すための仕掛けなのに……(TT
結論:ファイル名とタイトルの連想配列を作っといて、foreachするのが一番良いと思います。