Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt zliczajacy wybrane słowa
Forum PHP.pl > Forum > Przedszkole
luk5e
Witam,

istenieje skrypt któr bedzie zliczał ilosc np.uzytego słowa " luke" ? Tak aby mozna bylo to podpiac pod formularz a wynik wrzucic na strone jako "statystyka"?

Pozdrawiam.
mortus
Istnieje funkcja, która zlicza wystąpienia słowa w ciągu znaków. Ta funkcja to preg_match. Zobacz przykład 2.
luk5e
Moze inaczej ... opisze dokladniej o co mi chodzi smile.gif Wiec... Skrypt ma zliczac ile razy zostało użyte słowo np. " Żaba " wazne jest abym mogl okreslic jakie słowa ma zliczac. Czyli efekt powinien wygladac tak : " Żaba = 5 razy Bocian=10 razy sloncel= 3 razy " Wszystkie słowa powinien pobierac z pliku .xml .

Istnieje taki skrypt ? Jesli nie to, moze jest jakis magik który taki skrypt napisze odpłatnie ? smile.gif

Milego dzionka zycze smile.gif
Fifi209
A ja będę dobry i Ci pokażę jak to przykładowo zrobić:
  1. <?php
  2.  
  3. $slowa = array('żaba', 'żółw');
  4.  
  5. $tekst = 'żaba skakała obok wody w słoneczny dzień, widząc jak żółw wolno idzie żaba zaczęła się z niego potwornie śmiać';
  6.  
  7. $tekst = preg_replace('#[^a-zążźćśłó ]#is', '', $tekst);
  8.  
  9. $tekst = explode(' ', $tekst);
  10.  
  11. $arr = array();
  12.  
  13. foreach ($tekst as $slowo) {
  14. if (in_array($slowo, $slowa)) {
  15. if (isset($arr[$slowo])) {
  16. $arr[$slowo]++;
  17. }else{
  18. $arr[$slowo] = 1;
  19. }
  20. }
  21. }
  22.  
  23. foreach ($arr as $key => $val) {
  24. echo $key.' '.$val.'<br/>';
  25. }
  26.  
  27. ?>
Zyx
Wyrażenia regularne w tym miejscu to trochę jak strzelanie do wróbla z armaty:

substr_count() - zlicza ilość wystąpień podanego słowa w tekście

Wystarczy zapętlić, powtarzając operację dla każdego ze słów z osobna i w ten sposób uzyskamy statystyki. Nie wiem, jak wydajnościowo się sprawdzą obie metody dla dłuższych tekstów i z większą ilością słów - przy dobrej organizacji można to wydajnie zakodować, ale znając specyfikę wyrażeń regularnych i operacji PHP na tablicach przypuszczam, że substr_count() będzie szybsze.
thek
Zyx... Zawsze jest jeszcze jedna możliwość... Usunięcie znaków interpunkcyjnych, podzielenie tekstu po znakach białych i usuwanie dubli z jednoczesnym liczeniem. To da statystyke dla calego tekstu... nie tylko wybranych.
Fifi209
Cytat(thek @ 10.04.2010, 14:59:36 ) *
Zyx... Zawsze jest jeszcze jedna możliwość... Usunięcie znaków interpunkcyjnych, podzielenie tekstu po znakach białych i usuwanie dubli z jednoczesnym liczeniem. To da statystyke dla calego tekstu... nie tylko wybranych.

Mój jakby nie patrzeć wywala wszystko poza przedziałem czyli to o czym piszesz, można go łatwo przerobić. ;]
luk5e
Bardzo mi pomogliscie za co bardzo dziekuje:)

Fifi, skrypt super o to własnie mi chodziło. Mam jeszcze jedno zapytanie jak zrobic aby ten skrypt wspołpracował z baza danych mysql i z niej wyciagał te wybrane słowa? W bazie mam utworzona tabele jb_comment a komentarze leca do pola comment. Łatwo to zrobic czy nie bardzo ?
Fifi209
Cytat(luk5e @ 11.04.2010, 05:00:46 ) *
Bardzo mi pomogliscie za co bardzo dziekuje:)

Fifi, skrypt super o to własnie mi chodziło. Mam jeszcze jedno zapytanie jak zrobic aby ten skrypt wspołpracował z baza danych mysql i z niej wyciagał te wybrane słowa? W bazie mam utworzona tabele jb_comment a komentarze leca do pola comment. Łatwo to zrobic czy nie bardzo ?


Wybrać i zapisać do tablicy, w tym wypadku jest to tablica "slowa".
luk5e
A zeby mi pobrał z bazy " żaba skakała obok wody w słoneczny dzień, widząc jak żółw wolno idzie żaba zaczęła się z niego potwornie śmiać" - to zostało wysłane do bazy przez textarea i jest w tabeli jb_comment w polu comment i jak teraz to wszystko połaczyc aby działo tak jakby zostało bezposrednio wpisane do skryptu jak wyzej .
Fifi209
Cytat(luk5e @ 11.04.2010, 22:09:30 ) *
A zeby mi pobrał z bazy " żaba skakała obok wody w słoneczny dzień, widząc jak żółw wolno idzie żaba zaczęła się z niego potwornie śmiać" - to zostało wysłane do bazy przez textarea i jest w tabeli jb_comment w polu comment i jak teraz to wszystko połaczyc aby działo tak jakby zostało bezposrednio wpisane do skryptu jak wyzej .

A to nie wiesz jak pobrać z bazy tekst? haha.gif
luk5e
  1. $result = mysql_query("SELECT kolumna FROM tabela")
  2. or die("Zapytanie niepoprawne");


czyms takim ? tongue.gif


To nikt nie zdradzi tego magicznego sposobu jak pobrac tekst z bazy ?
Fifi209
mysql_fetch_assoc
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.