标签云的实现代码
<div id="cnblogs_post_body">效果网站 - 自动化1102: http://huxuemail.web-104.com乌鸟heart - 博客园: http://www.cnblogs.com/wuniaoheart/
数据库中,存放文章的表中有&ldquo;Tag&rdquo;字段,用来存放标签。标签之间用&ldquo;,&rdquo;分隔。比如&ldquo;PHP,VB,随笔&rdquo;。
下面的实现代码,将标签从数据库中搜出来,并格式化处理,使其以出现的次数为依据显示出不同大小的文字连接。
其中的细节,不做解释了!
观念陈、方法笨、效率低的标签云的实现代码如下:
<div class="cnblogs_code"> 1 <?PHP 2 /** 3 * WNiaoBlog Tag Template ShowTag 4 * 5 * @package WNiaoBlog 6 * 7 * @subpackage Tag 8*/ 9 10 //Connect the database11 //include('../include/config.php');12 13 /**14 * CountTag() - Statistics labels appear the number,and the data to be stored in the two array15 *16 * GetTag() - Access the Tag's Labels from the database17*/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."<br><br><br>";27 //in case no-label's article28 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]] ) {34 if( $EachTagStr[$i] == $EachTag ){35 $EachTagStr[$i]++;36 $Continue = FALSE;37 }38 else {39 if( $EachTagStr[$i+1] ) $Continue = TRUE;40 else {41 $EachTagStr[$i+1] = $EachTag;42 $EachTagStr[$i+1] = 1;43 $Continue = FALSE;44 }45 }46 } else { //initialize the array $EachTagStr[][]47 $EachTagStr[$i] = $EachTag;48 $EachTagStr[$i] = 1;49 $Continue = FALSE;50 }51 }52 }53 return $EachTagStr;54 }55 56 function ShowTag($Row,$ablink){57 $i = 0;58 while($Row[$i]]){59 $EachTag = $Row[$i]];60 $EachCount = $Row[$i]];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 "<pclass='med1' style='color:#046111'>标签云</p>";86 $String = GetTag();87 $Row = CountTag($String);88 ShowTag($Row,$ablink);89 echo "</div>";90 91 ?>
页:
[1]