PHPに惚れました

今でも多分惚れてます。

nicoAPI群解説(nicoAPI編)

今はnicoPlayerページと統合してnicoAPIページはありませんが
当時動かしていたスクリプトのソースでも公開してみようかなと。

まずは取得の下準備。

マルチバイト文字変換関数

<?php
function convert($str) {
    return mb_convert_encoding($str, "eucJP-win" ,"utf-8");
}
?>

ニコニコ動画の動画情報APIXMLファイル、文字コードUTF-8で記述されています。
スクリプトの文字コードUTF-8以外で書く場合は変換が必要です。
でないと、APIで取得した文字列部分は文字化けします。

変換にはmb_convert_encoding("文字列","変換する文字コード","元の文字コード");を使用。
マルチバイト文字を変換してくれます。

EUCの場合 mb_convert_encoding($str, 'euc-jp', 'UTF-8')
Shift-jisの場合 mb_convert_encoding($str, 'SJIS', 'UTF-8')

大半の方はこんな感じで書くでしょう。
指定する文字コードは合ってます。でもこれでは△。
これでは機種依存文字はサポートされていないのです。

正しくEUCで書く場合。

<?
mb_convert_encoding($str, "eucJP-win" ,"utf-8");
?>

Shift-jisで書く場合。

<?
mb_convert_encoding($str, "SJIS-win" ,"utf-8");
?>

これで大半の機種依存文字も表示されるはずです。
全てはカバー出来ませんがニコニコで扱われる機種依存文字をカバーする分には十分いいでしょう。

でもなるべくUTF-8を採用した方が無難です。
自分も最初EUC-JPにして後々後悔しましたので。。。


肝心の処理部分の解説は近日。