Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]System Tag'ów
Forum PHP.pl > Forum > PHP
moto0095
Witam.
Ostatnio znalazłem w sieci bardzo ciekawy skrypt do obsługi tagów.
  1. $freqData = array();
  2. $lorem = "Litwo! Ojczyzno moja! ty jesteś jak zdrowie.
  3. Ile cię trzeba cenić, ten tylko się dowie,
  4. Kto cię stracił. Dziś piękność twą w całej ozdobie
  5. Widzę i opisuję, bo tęsknię po tobie.";
  6.  
  7. foreach(str_word_count($lorem, 1) as $word) {
  8. array_key_exists($word, $freqData) ? $freqData[$word]++ : $freqData[$word] = 0;
  9. }
  10.  
  11. arsort($freqData);
  12.  
  13. function getCloud($data = array(), $minFontSize = 12, $maxFontSize = 30) {
  14. $minimumCount = min(array_values($data));
  15. $maximumCount = max(array_values($data));
  16. $spread = $maximumCount - $minimumCount;
  17. $cloudHTML = '';
  18. $cloudTags = array();
  19. $spread == 0 && $spread = 1;
  20.  
  21. foreach($data as $tag => $count) {
  22. $size = $minFontSize + ($count - $minimumCount) * ($maxFontSize - $minFontSize) / $spread;
  23. $cloudTags[] = "<a style=\"font-size: ".floor($size).";\" class=\"tag_cloud\" href=\"http://www.google.com/search?q=$tag\" title=\"$tag\">".htmlspecialchars(stripslashes($tag))."</a>";
  24. }
  25. return join("\n", $cloudTags)."\n";
  26. }


Skrypt tworzy tablicę:
  1. (
  2. [ci] => 1
  3. [ca] => 0
  4. [ej] => 0
  5. [ozdobie] => 0
  6. [w] => 0
  7. [tw] => 0
  8. [pi] => 0
  9. [kno] => 0
  10. [Widz] => 0
  11. [Dzi] => 0
  12. [skni] => 0
  13. [po] => 0
  14. [t] => 0
  15. [bo] => 0
  16. [i] => 0
  17. [opisuj] => 0
  18. [tobie] => 0
  19. [straci] => 0
  20. [jak] => 0
  21. [zdrowie] => 0
  22. [jeste] => 0
  23. [ty] => 0
  24. [Ojczyzno] => 0
  25. [moja] => 0
  26. [Ile] => 0
  27. [trzeba] => 0
  28. [dowie] => 0
  29. [Kto] => 0
  30. [si] => 0
  31. [tylko] => 0
  32. [ceni] => 0
  33. [ten] => 0
  34. [Litwo] => 0
  35. )


Jak zrobić aby skrypt powyżej wyświetlił pierwsze 5 wyników questionmark.gif
Quadina
Po Twojej linii 23 dodaj
  1. if(count($cloudTags)>=5)break;
moto0095
Ok działa. A jak jeszcze wyświetlić losowo rekordy questionmark.gif
starach
funkcja rand() i pokrewne.
moto0095
Znalazłem funkcję shuffle() i gra gitara, ale dzięki za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.