In the database, there is a "Tag" field in the table that stores articles, which is used to store tags. Tags are separated by ",". For example, "PHP, VB, essays".
The following implementation code searches the tags from the database and formats them so that they display text links of different sizes based on the number of occurrences.
I won’t explain the details!
The implementation code of the tag cloud with old concepts, stupid methods and low efficiency is as follows:
Copy the code The code is as follows:
/**
* WNiaoBlog Tag Template ShowTag
*
* @package WNiaoBlog
*
* @subpackage Tag
*/
//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="http://www.php1.cn/">$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 "Tag Cloud";
$String = GetTag();
$Row = CountTag($String);
ShowTag($Row,$ablink);
echo "
";
?>
OK ,DONE!