Hi,
ich hab mir ein kleines Tagcloud erstellt.
leider hab ich das problem, das es mir immer alle wörter ausgibt und die ausgabe sich irgendwie nicht sinnvoll begenzen lässt
ich hab das so gamacht:
[code] //Arrays zufällig sortieren und Schlüssel dabei beibehalten
function shuffle_assoc(&$array) {
$keys = array_keys($array);
shuffle($keys);
foreach($keys as $key) {
$new[$key] = $array[$key];
}
$array = $new;
return true;
}
$quelle =‘http://news.google.de’
$text = strip_tags(preg_replace(’#(<script( ([^.]|.))?>([^.]|.))|(<style( ([^.]|.))?>([^.]|.))#U’,’’,file_get_contents($quelle)));
//In Wörter trennen
$words = explode(" ", $text);
$collected = array();
//Alle Wörter durch
foreach($words as $word) {
//Kleine Wörter und Sonderzeichen raus
if(strlen($word) <= 4) continue;
$word = str_replace(array(’.’, ‘,’, ‘!’, ‘?’), array(’ ‘,’ ‘,’’,’’), $word);
if(!$collected[$word]) $collected[$word] = 0;
//Und einmal mehr
$collected[$word]++;
}
//Durchwürfeln
shuffle_assoc($collected);
//Maximale Breite
$width = 5;
$i = 0;
//Durch alle gesammelten durchgehen
foreach($collected as $word => $count) {
$size =floor( $count*1000/250);
//Ein bisschen Zufall
//$size += rand(0,4);
//Größenbegrenzung
//$size = Max($size, 12);
$size = Min($size, 50);
//echo $count.'*1000/250 = '. $size . '<br>';
if($count != 0)
echo ' <a href="search.php?s='.$word.'" style="font-size: '.$size.';">'.$word."</a>";
$i++;
//Breiter als erlaubt? Neue Zeile!
if($i >= $width) {
echo '<br>'.PHP_EOL;
$i = 0;
}
}[/code]
hat jemand einen einfall wir man das zb auf die häufigsten 10 wörter begrenzen kann?