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だと成功した!!
YouTubeがどんな文字コードを使っているのか分かりませんが、おそらくUTF-8だと思います。それならばGoogleもかなぁ?
■文字コードについて、PHPで変換すべきか?HTMLで変換すべきか?
(他のサイトからの情報を)
・html 文字コード
→ソースを見るとしっかりと取得している。
PHPを使って文字コードを変換してみる(shift-jisに)
・php 文字コード
↓
・PHP概説めにー : こりゃまためんどい文字コード
体系的、経験的に文字コードについて紹介されている。見やすい。
↓
・PHPの文字化けを本気で解決する
こっちの方がわかりやすいか?