php實現(xiàn)標(biāo)簽云的代碼

標(biāo)簽云是一套相關(guān)的標(biāo)簽以及與此相應(yīng)的權(quán)重。典型的標(biāo)簽云有30至150個標(biāo)簽。權(quán)重影響使用的字體大小或其他視覺效果。同時,直方圖或餅圖表是最常用的代表約12種不同的權(quán)數(shù)。因此,標(biāo)簽云彩能代表更多的權(quán),盡管不那么準(zhǔn)確。此外,標(biāo)簽云通常是可以交互的:標(biāo)簽是典型的超鏈接,讓用戶可以仔細(xì)了解他們的內(nèi)容。

下面的實現(xiàn)代碼,將標(biāo)簽從數(shù)據(jù)庫中搜出來,并格式化處理,使其以出現(xiàn)的次數(shù)為依據(jù)顯示出不同大小的文字連接

數(shù)據(jù)庫中,存放文章的表中有“Tag”字段,用來存放標(biāo)簽。標(biāo)簽之間用“,”分隔。比如“PHP,VB,隨筆”。
下面的實現(xiàn)代碼,將標(biāo)簽從數(shù)據(jù)庫中搜出來,并格式化處理,使其以出現(xiàn)的次數(shù)為依據(jù)顯示出不同大小的文字連接。
其中的細(xì)節(jié),不做解釋了!
觀念陳、方法笨、效率低的標(biāo)簽云的實現(xiàn)代碼如下:

?代碼如下:

//Connect?the?database?  //include('../include/config.php');?  /**?  *?CountTag()?-?Statistics?labels?appear?the?number,and?the?data?to?be?stored?in?the?two?array?  *?  *?GetTag()?-?Access?the?Tag's?Labels?from?the?database?  */?  function?CountTag($String){?  $TagString?=?$String;?  //echo?$TagString."?  ";?  $Tags?=?explode(",",$TagString);?  $n?=?1;?  $i?=?0;?  $Continue?=?TRUE;?  //echo?$Tags[1]."?  ";?  //in?case?no-label's?article?  while($Tags[$n]?OR?$Tags[++$n]?OR?$Tags[++$n]?){?  $EachTag?=?$Tags[$n++];?  //echo?$EachTag."?  ";?  $Continue?=?TRUE;?  for($i=0;$Continue;$i++){?  if(?$EachTagStr[$i][0]?)?{?  if(?$EachTagStr[$i][0]?==?$EachTag?){?  $EachTagStr[$i][1]++;?  $Continue?=?FALSE;?  }?  else?{?  if(?$EachTagStr[$i+1][0]?)?$Continue?=?TRUE;?  else?{?  $EachTagStr[$i+1][0]?=?$EachTag;?  $EachTagStr[$i+1][1]?=?1;?  $Continue?=?FALSE;?  }?  }?  }?else?{?//initialize?the?array?$EachTagStr[][]?  $EachTagStr[$i][0]?=?$EachTag;?  $EachTagStr[$i][1]?=?1;?  $Continue?=?FALSE;?  }?  }?  }?  return?$EachTagStr;?  }?  function?ShowTag($Row,$ablink){?  $i?=?0;?  while($Row[$i][0]){?  $EachTag?=?$Row[$i][0];?  $EachCount?=?$Row[$i][1];?  $Size?=?SetSize($EachCount);?  echo?"??".$EachTag."(".$EachCount.")"."?";?  $i++;?  }?  }?  function?GetTag(){?  $QuerySet?=?mysql_query("select?*?from?article");?  while($Row?=?mysql_fetch_array($QuerySet)){?  $Tag?=?$Row['tag'];?  $TagString?=?$TagString.",".$Tag;?  }?  return?$TagString;?  }?  function?SetSize($Size){?  $Size?+=?10;?  if($Size?>?30)?  $Size?=?30;?  return?$Size;?  }?  //Go?  echo?"?  ";?  echo?"標(biāo)簽云";?  $String?=?GetTag();?  $Row?=?CountTag($String);?  ShowTag($Row,$ablink);?  echo?"?  ";?  ?>

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊13 分享