カナかな団の躁鬱

つまるところ、日記BBSの過去ログです。各記事の見出し部分のナンバーは記事個別表示のアンカーとなっています。



日記

990 はてなブックマーク表示の覚書

  • 投稿者 首領
  • 投稿日 2007年12月13日 11時00分

昨日まで、PHP で、はてなブックマークのコメント一覧を読み込んで表示してたんだけど、一応メモで残しとく。

はてなRSSで、ブックマークのコメント一覧を取得できるので、それを利用してました。

<?php

#リクエストURLを取得
$var = $_SERVER["REQUEST_URI"] ;

#リクエストURLからクエリ以後を取り出す
$dataurl = preg_replace ("/.*read|\.|php|\/|\?/", "", $var) ;

//はてブコメント

#フラグメント識別子を作るための元
$hatenano = substr ($dataurl, 8, 1) ;
$hatenafla = preg_replace ("/0/", "10", $hatenano) ;

#print "$var%23PrintNo$hatenafla";

#フラグメント識別子なしURLのはてなブックマークコメントを読み込む
$hatenas = file ("http://r.hatena.ne.jp/entry/bcomment?entryurl=http://www.aboutworks.com$var") ;

#フラグメント識別子ありURLのはてなブックマークコメントを読み込む
$hatenat = file ("http://r.hatena.ne.jp/entry/bcomment?entryurl=http://www.aboutworks.com$var%23PrintNo$hatenafla") ;

#文字コード変換 UTF-8→SJIS
mb_convert_variables ("SJIS", "UTF-8", $hatenas);
mb_convert_variables ("SJIS", "UTF-8", $hatenat);

#不要部分を削除 li 要素だけを残す 
$hatenaone = array_slice ($hatenas, 4);
array_pop ($hatenaone) ;
array_pop ($hatenaone) ;

$hatenatwo = array_slice ($hatenat, 4);
array_pop ($hatenatwo) ;
array_pop ($hatenatwo) ;

#配列を結合
$hatenabook = array_merge($hatenaone, $hatenatwo) ;

#条件分岐 誰もブクマしてない時→配列の中身が空っぽ
if (empty ($hatenabook)){
print "

<hr>

<div class=\"bookmarklist\">
<h3><a href=\"http://b.hatena.ne.jp/\">はてなブックマーク</a>のコメント一覧</h3>
<ul>
<li><a href=\"http://b.hatena.ne.jp/\">はてなブックマーク</a>のコメントが反映されます。この記事は、まだブックマークされていません。</li>
</ul>
<!-- bookmarklist --></div>
";
}

#条件分岐 誰かブクマしてる時→配列の中身がある
else {
print "

<hr>

<div class=\"bookmarklist\">
<h3>はてなブックマークのコメント一覧</h3>
<ul>
";

#配列の要素が無くなるまで処理を繰り返す
while ($hatenabookmark = array_shift ($hatenabook)) {
print "$hatenabookmark";
}

print "
</ul>
<!-- bookmarklist --></div>

";
}

?>

という内容だったのだけど、どうも処理に時間が掛かって、本文の表示が途中で止まってしまうようなので、この方式は止めて、【はてなブックマークコメントその場で表示ライブラリとは - はてなダイアリー】に書かれてる方式にしました。

「はてなブックマークのコメント一覧」の下に、なんか中途半端な感じで 画像 がありますけど、ソレをクリックするとコメントが出てくるようです。どうぞご利用ください。


はてなブックマークのコメント一覧


ページ操作


掲示板情報

案内 カナかな団の躁鬱ご利用の手引き