YouTubeのタグ部分を取得したい。ってさぁ。

YouTubeのtitleタグ部分だけ取得してみました。取得するのは簡単ですが、文字化けをどうするかで時間を取りまして。まぁ、なんとか表示するに至り・・・・。

*HTMLのshift_jisの部分やmb_convert_encodingのSJISはそれぞれの環境によって変化させてください。

//match[0]には、<title>タグ付きの文字列が、
//match[1]には、<title>タグなしの文字列が入る。


<meta http-equiv="Content-Type" content="text/html; charset=Shift_jis"><!-- HTMLの文字コードは、環境がWindowsだったのでShift_JISへ -->
<?php

//正規表現
$pattern = "<title>(.*)<\/title>";//Vに見えるけどバックスラッシュです。

$html = file("http://www.youtube.com/watch?v=H-sFGBvxPoY");//サイトのURL
$str = implode("", $html);

if(preg_match("/".$pattern."/i", $str, $match)){
		$string  = mb_convert_encoding($match[0],"SJIS", "UTF-8");//UTF-8からShift-JISへ変換する。
		$string2 = mb_convert_encoding($match[1], "SJIS", "UTF-8");//UTF-8からShift-JISへ変換する。
		
print "<b>タグあり文字列:</b>".$string."<br />";
print "<b>タグなし文字列:</b>".$string2."<br />";
}


?>

いろいろ試したが、UTF-8からShift-JIS,htmlの文字コードもshift_jisだと成功した!!

UTF-8 → Shift_JIS

YouTubeがどんな文字コードを使っているのか分かりませんが、おそらくUTF-8だと思います。それならばGoogleもかなぁ?


文字コードについて、PHPで変換すべきか?HTMLで変換すべきか?
(他のサイトからの情報を)
html 文字コード

→ソースを見るとしっかりと取得している。

PHPを使って文字コードを変換してみる(shift-jisに)
php 文字コード

PHP概説めにー : こりゃまためんどい文字コード
体系的、経験的に文字コードについて紹介されている。見やすい。

PHPの文字化けを本気で解決する
こっちの方がわかりやすいか?