php实现标签云的代码

标签云是一套相关的标签以及与此相应的权重。典型的标签云有30至150个标签。权重影响使用的字体大小或其他视觉效果。同时,直方图或饼图表是最常用的代表约12种不同的权数。因此,标签云彩能代表更多的权,尽管不那么准确。此外,标签云通常是可以交互的:标签是典型的超链接,让用户可以仔细了解他们的内容。

下面的实现代码,将标签从数据库中搜出来,并格式化处理,使其以出现的次数为依据显示出不同大小的文字连接

数据库中,存放文章的表中有“Tag”字段,用来存放标签。标签之间用“,”分隔。比如“PHP,VB,随笔”。
下面的实现代码,将标签从数据库中搜出来,并格式化处理,使其以出现的次数为依据显示出不同大小的文字连接。
其中的细节,不做解释了!
观念陈、方法笨、效率低的标签云的实现代码如下:

 代码如下:

//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 "标签云";   $String = GetTag();   $Row = CountTag($String);   ShowTag($Row,$ablink);   echo "   ";   ?>

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享