Maison  >  Article  >  base de données  >  Code PHP pour implémenter le nuage de tags

Code PHP pour implémenter le nuage de tags

怪我咯
怪我咯original
2017-07-11 16:31:041268parcourir

Un nuage de tags est un ensemble de tags associés et leurs poids correspondants. Un nuage de balises typique comprend 30 à 150 balises. Le poids affecte la taille de la police ou d’autres effets visuels utilisés. Pendant ce temps, les histogrammes ou les diagrammes circulaires sont le plus souvent utilisés pour représenter environ 12 poids différents. Par conséquent, le nuage de tags peut représenter davantage de droits, même s’il est moins précis. De plus, les nuages ​​de tags sont souvent interactifs : les tags sont généralement des hyperliens, permettant aux utilisateurs d'examiner de plus près leur contenu.

Le code d'implémentation suivant recherche les balises dans la base de données et les formate afin qu'elles affichent des connexions texte de différentes tailles en fonction du nombre d'occurrences

Dans la base de données, les articles sont stockés. un champ "Tag" dans la table, qui permet de stocker les tags. Les balises sont séparées par ",". Par exemple, « PHP, VB, essais ».
Le code d'implémentation suivant recherche les balises dans la base de données et les formate afin qu'elles affichent des liens texte de différentes tailles en fonction du nombre d'occurrences.
Je n’expliquerai pas les détails !
Le code d'implémentation du nuage de tags avec des concepts anciens, des méthodes stupides et une faible efficacité est le suivant :

Le code est le suivant :

//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=&#39;color:BLUE ; font-size:".$Size." &#39; onMouseOver=this.style.color=&#39;#900000&#39; onMouseOut=this.style.color=&#39;BLUE&#39; href=&#39;".$ablink."tag?tag=".$EachTag."&#39; target=&#39;_self&#39; > ".$EachTag."(".$EachCount.")"." "; 
$i++; 
} 
} 
function GetTag(){ 
$QuerySet = mysql_query("select * from article"); 
while($Row = mysql_fetch_array($QuerySet)){ 
$Tag = $Row[&#39;tag&#39;]; 
$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 " 
"; 
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn