nicoAPI群解説(nicoAPI編その2)
お待たせしました。 出かける事が多く更新遅くなりまして。
文字コードの件はよろしいですか?
XML形式文書はUTF-8で書かれてるので変換の際はeucJP-winかSJIS-winにしましょうという話でした。
今回は実際にXMLから取得してみようという話です。
取得先URL→http://www.nicovideo.jp/api/getthumbinfo/動画ID (sm9,sm500873など)
こんなXML文書が見れましたか?
コイツをPHPで取得して各要素を取り出します。
まずは各要素の概要を。パッと見で分かりそうな物は省きます。
- nicovideo_thumb_response
- 動画のステータス
- description
- 動画説明文
- thumbnail_url
- サムネイル画像のURL
- first_retrieve
- 投稿日(グリニッジ形式)
- view_counter
- 再生数
- comment_num
- コメント数
- mylist_counter
- マイリスト数
- last_res_body
- 最新コメント5つ
- embeddable
- 外部再生の可否?
- tags domain
- タグの国識別
XMLはsimplexml_load_file()関数で扱います。
<?php $req = "http://www.nicovideo.jp/api/getthumbinfo/sm9"; $xml = simplexml_load_file($req); //続く ?>
各要素へのアクセスは「->」で1階層下の要素に潜れます。そして取り出し。
XMLオブジェクトの各要素の取り出し。
<?php //続き print $xml->thumb->title;//タイトル print $xml->thumb->description;//投稿者コメント print $xml->thumb->thumbnail_url;//サムネURL //続く ?>
タグ取り出しの場合。
同じ階層に同じ要素名でいくつか並んでますよね?
配列を扱うような感じで取り出せます。
XMLオブジェクトの各要素の取り出し。
<?php //続き print $xml->thumb->tags->tag[0]; print $xml->thumb->tags->tag[1]; print $xml->thumb->tags->tag[2]; //foreachで取り出す場合 foreach($xml->thumb->tags as $tag){ print $tag; } //こっちの方が簡単ですね。 //<tags domain="jp">の「jp」を取り出す場合。 //やり方は連想配列のキーを取り出す時と同じです。 print $xml->thumb->tags[domain]; ?>