Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]System Tag'ów
moto0095
post 8.12.2010, 21:15:38
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Quadina
post 8.12.2010, 21:54:33
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 38
Dołączył: 1.12.2010
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Po Twojej linii 23 dodaj
  1. if(count($cloudTags)>=5)break;


--------------------
Warsztat: NetBeans 7.2 Beta, PHP, MySQL, PostgreSQL, Symfony (<=1.4), Diem, Java, Sieci neuronowe
Go to the top of the page
+Quote Post
moto0095
post 8.12.2010, 22:24:21
Post #3





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Ok działa. A jak jeszcze wyświetlić losowo rekordy questionmark.gif
Go to the top of the page
+Quote Post
starach
post 8.12.2010, 22:50:40
Post #4





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


funkcja rand() i pokrewne.
Go to the top of the page
+Quote Post
moto0095
post 8.12.2010, 23:29:41
Post #5





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Znalazłem funkcję shuffle() i gra gitara, ale dzięki za pomoc smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 10:43