2008年02月07日

キーワードクラウドはこんな感じ?

以前、キーワードクラウドを自分のサイトに作ってみたことをここで書いたのですが、実際のコードや動作する部分を載せませんでした。

というのもPHPが動作するフリースペースを持っておらず、スクリプトを設置できなかったんです。

で、よさそうなスペースを確保できたので掲載しますね。




 
【PHP】キーワードクラウド検証ページ

ページを見てもらうとわかると思うのですが、検索窓から入力されたキーワードを蓄積していき、蓄積された語句の数に比例して表示する文字の大きさを変えるものです。

実際のサイトではcookieを使用して同じ人からの同じキーワードの入力を制限していますがこのページではホスト名で制限をしています。

2回以上入力された語句、つまり2種類のホストから入力された同じ語句に対して表示処理をしています。

それと実際のサイトでは、結構ガンガン入力されるので、あまり古いデータは対象にしないよう最新1万データとかに対してだけ表示処理をしています。

肝心の重み付けの部分ですが、以下のようにやってます。


//データをこのような配列にまとめて整えておきます
//(実際のサイトはこれ+リンクURLも配列にしてます)


$data = array(
array(キーワード1,出現回数),
array(キーワード2,出現回数),
・・・・
);

//クラウドを生成する関数です
function createTagCloud($data,$MAXSIZE=30,$MINSIZE=9)
{
$ndata = array();
$x = array();
foreach($data as $val)
{
$ndata[$val[0]] = $val;
}
foreach($data as $val)
{
$x[] = $val[1];
}
$max = max($x);
$min = min($x);
$buff = NULL;
foreach($ndata as $val)
{
$per = ($val[1] - $min ) / ($max - $min);
$size = $MINSIZE + ($MAXSIZE - $MINSIZE) * $per;
$size = round($size);
$buff .= <<{$val[0]\r\n
loop;
}
return $buff;
}




あとは適当にCSSで整えて
echo createTagCloud($data);
で出力すればOKです。




何かしら参考になりましたらクリックをよろしくお願いします
にほんブログ村 IT技術ブログへ   人気ブログランキング    
この記事へのコメント
私が探している機能を実現できそうだったのでお聞きします。
現在WordPressでのサイト構築を検討中です。タグクラウドを作る機能はありますが、タグを別の機能に活用する等の理由で、キーワードによる「タグクラウド」を作りたいのです。
検索してみましたが、MovableTypeでは実施例があるのですが、WordPressでは見当たりません。
そこで、phpで実現できる貴殿の方法であれば、WordPressに組み込めると思います。
phpで「meta keywords」を集積して「キーワードクラウド」を生成する、ということで、どのようなphpを使えばよいのでしょうか?
Posted by pyon-yon at 2011年03月01日
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。