TagCloud mit PHP
Dienstag, 6. November 2007Tagclouds sind heutzutage auf (fast) jeder Seite zu finden. Zum Einen erhöhen Sie die Wahrscheinlichkeit bei google und Co eine gute Platzierung zu erreichen und zum Anderen erlauben sie dem Besucher schnell an bestimmte Themen zu kommen.
Hier ist nun ein Script für eine einfache Tagcloud, wie sie auch auf dieser Website zu finden ist.
Die ganze Geschichte benötigt lediglich eine Datenbank in der die Tags drin gespeichert sind. In diesem Beipiel sind sie durch ein einfaches Leerzeichen voneinander getrennt.
$res = mysql_query ("SELECT tags FROM your_database"); $num = mysql_num_rows ($res); while ($row = mysql_fetch_array ($res)){ $data[] = $row['tags'].' ';} $data = implode('',$data); $words = explode(" ", $data); $acv = array_count_values( $words ); $bannedwords = array(''); $i = 0; $count = 0; foreach($acv as $k=>$v) { if (!array_search(strtolower($k),$bannedwords) and eregi("[a-zA-Z]",$k) and $i<=40 and strlen($k)>2) { if (isset($new_acv[strtolower($k)] )) $new_acv[strtolower($k)] += $v; else $new_acv[strtolower($k)] = $v; $i++; $count++; } } ksort( $new_acv ); $i = 0; foreach( $new_acv as $k=>$v) { $size = ($v / $count )* 500; /*Dieser Wert kann je nach Anzahl der Tags Variiert werden*/ $weight = $v*10; $color = '#ccc'; if ($size >= 250) {$size = 250; $color = '#ff9900';} if ($size <= 35) {$size = 40;} $kurl = urlencode("$k"); if ($i < 20){ echo '<a href="index.php?req=search&begriff='.$k.'" style="border: 0px none ; float: left">'.$k.'</a>'; } $i++; } ?>