标签云是一套相关的标签以及与此相应的权重。典型的标签云有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 " < 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.")"." ";
$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 "
";
?>
以上就是php实现标签云的代码的详细内容。