zoukankan      html  css  js  c++  java
  • 标签云的实现代码

    效果网站 - 自动化1102: http://huxuemail.web-104.com 

    乌鸟heart - 博客园: http://www.cnblogs.com/wuniaoheart/ 

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

     1 <?PHP
     2 /**
     3  * WNiaoBlog Tag Template ShowTag
     4  *
     5  * @package WNiaoBlog
     6  *
     7  * @subpackage Tag
     8  */
     9 
    10 //Connect the database
    11 //include('../include/config.php');
    12 
    13 /**
    14  * CountTag() - Statistics labels appear the number,and the data to be stored in the two array
    15  *
    16  * GetTag() - Access the Tag's Labels from the database
    17  */
    18 
    19 function CountTag($String){
    20      $TagString = $String; 
    21      //echo $TagString."<br><br><br>";
    22      $Tags = explode(",",$TagString);
    23      $n = 1;
    24      $i = 0;
    25      $Continue = TRUE;
    26      //echo $Tags[1]."<br><br><br>";
    27      //in case no-label's article
    28      while($Tags[$n] OR $Tags[++$n] OR $Tags[++$n] ){
    29      $EachTag = $Tags[$n++];
    30      //echo $EachTag."<br><br><br>";
    31      $Continue = TRUE;
    32      for($i=0;$Continue;$i++){
    33          if( $EachTagStr[$i][0] ) {
    34              if( $EachTagStr[$i][0] == $EachTag ){
    35                  $EachTagStr[$i][1]++;
    36                  $Continue = FALSE;
    37                 }
    38              else {
    39                  if( $EachTagStr[$i+1][0] ) $Continue = TRUE;
    40                    else {
    41                      $EachTagStr[$i+1][0] = $EachTag;
    42                      $EachTagStr[$i+1][1] = 1;
    43                      $Continue = FALSE;
    44                    }
    45              }
    46         } else { //initialize the array $EachTagStr[][]
    47                  $EachTagStr[$i][0] = $EachTag;
    48                  $EachTagStr[$i][1] = 1;
    49                  $Continue = FALSE;
    50             }
    51         }
    52     }
    53     return $EachTagStr;
    54 }
    55 
    56 function ShowTag($Row,$ablink){
    57      $i = 0;
    58      while($Row[$i][0]){
    59      $EachTag = $Row[$i][0];
    60      $EachCount = $Row[$i][1];
    61      $Size = SetSize($EachCount);
    62      echo "<a style='color:BLUE ; font-size:".$Size." ' onMouseOver=this.style.color='#900000' onMouseOut=this.style.color='BLUE'  href='".$ablink."tag?tag=".$EachTag."' target='_self' > ".$EachTag."(".$EachCount.")"." </a>";
    63      $i++;
    64     }
    65 }
    66 
    67 function GetTag(){
    68      $QuerySet = mysql_query("select * from article");
    69      while($Row = mysql_fetch_array($QuerySet)){
    70          $Tag = $Row['tag'];
    71          $TagString = $TagString.",".$Tag;
    72         }
    73      return $TagString;
    74 }
    75 
    76 function SetSize($Size){
    77      $Size += 10;
    78      if($Size > 30)
    79      $Size = 30;
    80      return $Size;
    81 }
    82 
    83 //Go 
    84 echo "<div id=showtag>";
    85 echo "<p  class='med1' style='color:#046111'  >标签云</p>";
    86 $String = GetTag();
    87 $Row = CountTag($String);
    88 ShowTag($Row,$ablink);
    89 echo "</div>";
    90 
    91 ?>

    OK,DONE!

     

  • 相关阅读:
    实现websocket中遇到的恶心问题。
    移动js框架使用报告
    超级难用的wireshark。
    三国演义LBS 20110406 本次清明节解决问题列表。
    【原创意】一个市值估算超亿的创意——愤怒的小猪(谢绝抄袭和冒名顶替)
    一个小游戏 让你感受“如何等待成功”!
    js 游戏引擎 + canvas 入门
    javascript 中的反射
    使用HTML5进行地理位置定位。误差在+500m
    【原创意】新浪微博都感到巨大鸭梨的全新创意 —— 二维码社区"神码"
  • 原文地址:https://www.cnblogs.com/wuniaoheart/p/2717643.html
Copyright © 2011-2022 走看看