←(新しい記事) BufferとIFTTTはじ... | top | Twitterを鍵アカウ... (昔の記事)→

getID3ライブラリーの文字化けとNoticeエラー対策

過去にこのブログで何回か取り上げているおうち用mp3検索システム(データ取得)はphpで動いているんですが、mp3ファイルのタグ情報を取得するためにgetID3というライブラリーを利用しています。

で、このライブラリーはShiftJISの文字コードに対応していないため、ShiftJISで書かれたタグは文字化けしてしまいます。
また、PHPのバージョンとデフォルトエンコーディングの設定によっては
「Notice: htmlentities(): Only basic entities substitution is supported for multi-byte encodings other than UTF-8; functionality is equivalent to htmlspecialchars in getid3.lib.php on line ****」
というエラーが出てしまうことがあります。

この2つの問題に対応する方法をメモ書きとして残しておきます。

(詳しくはつづきを読むで)

getID3ライブラリーをダウンロードしてzipファイルを展開したら、getid3ディレクトリにある「getid3.lib.php」をコピー(バックアップ)しておきます。
※何か問題があったときに元に戻せるようにするため

[1] ShiftJISが文字化けする問題の解消法

1 getid3.lib.phpファイルをテキストエディタで開きます
2 「iconv_fallback(」で検索して、iconv_fallback関数を探します
3 関数の以下の部分を書き換えます
<変更前>

if ($in_charset == $out_charset) {
return $string;
}

// mb_convert_encoding() available
if (function_exists('mb_convert_encoding')) {



<変更後>

if ($in_charset == $out_charset) {
return $string;
}

$t_charset = mb_detect_encoding($string,"JIS,UTF-8,SJIS-win,CP932,EUCJP-WIN",true);
if ($t_charset !== false) {
return mb_convert_encoding($string,$out_charset,$t_charset);
}
unset($t_chaset);

// mb_convert_encoding() available
if (function_exists('mb_convert_encoding')) {


4 ファイルを保存します

[2] Noticeエラーが出てしまう問題の解消法

1 getid3.lib.phpファイルをテキストエディタで開きます
2 「htmlentities」で検索して、以下の記述を探します

$HTMLstring .= htmlentities(chr($charval));

3 見つかった部分を以下の通りに書き換えます
<変更前>

$HTMLstring .= htmlentities(chr($charval));


<変更後>

$HTMLstring .= htmlentities(chr($charval),ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,$charset);

4 ファイルを保存します

これで文字化けやエラーメッセージは出なくなっていると思います。
■この記事は役に立ちましたか?
全然役に立たなかった
役に立たなかった
どちらでもない
役に立った
とても役に立った
この記事の平均評価: 未評価 (0人)
このエントリーをはてなブックマークに追加

| プログラミング::PHP | 08:22 PM | comments (0) | trackback (0) |

コメント

コメントする








トラックバックURL

http://horisanu.info/tb.php/353

トラックバック

←(新しい記事) BufferとIFTTTはじ... | top | Twitterを鍵アカウ... (昔の記事)→

NEW ENTRIES

RECENT COMMENTS

RECENT TRACKBACK

自分用新刊カレンダー

つぶやき

mstdn.jp@horisanuのつぶやき

PROFILE


ARCHIVES

<前月 2024年12月 次月>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31     

CATEGORIES

LINK

OTHER

合計:21791
今日:169
昨日:733

POWERED BY