Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]skrypt liczacy ilosc słów w tekście
Forum PHP.pl > Forum > Przedszkole
michat34
no więc oto jest skrypt z tytułu:

  1. $tekst=$_POST['tekst];
  2. $szukane=$_POST['szukane'];
  3.  
  4. if (strlen($tekst)>0 && strlen($szukane)>0)
  5. {
  6. $tablica=explode(" ",$tekst);
  7.  
  8. $i=count($tablica);
  9.  
  10. $j=0;
  11.  
  12. while ($i!==0)
  13. {
  14. if ($tablica[$i]==$szukane)
  15. {
  16. ++$j;
  17. }
  18. --$i;
  19. }
  20. echo "'$szukane' wystepuje w tekscie $j razy <br/>";
  21. } else
  22. echo "Nie wprowadziles tekstu <br/>";
  23. ?>


i ogolnie działa bez zastrzeżeń, oprócz sytuacji kiedy damy to samo w $tekst i $szukana. czyli dajmy na to $tekst = ala i $szukana = ala, wypisze mi ze 'ala' znajduje się w tekscie 0 razy. potem zauwazylem ze gdy dam $tekst = ala ala ala i $szukana = ala, to wypisze, że 'ala' znajduje się2 razy. innymi słowy zawsze o 1 mniej. analizowalem kod ale nie wiem co moze byc przyczyna..
darko
Masz do takich zabaw gotowe funkcje, wystarczy zajrzeć, poczytać:
http://php.net/manual/en/function.str-word-count.php
http://www.php.net/manual/en/function.substr-count.php
abort
Zobacz przykłady na http://www.php.net/manual/en/function.explode.php
Zobaczysz, że we wszystkich przykładach tablice indeksowane są od zera.
Wniosek? Dodać do wyniku 1. Problem pojawia się w przypadku, kiedy ciągu znaków nie znajdzie - rzadko stosuję explode, więc nie pomogę. Wiem natomiast, że można zastosować preg_match (choć wiem też, że wyrażenia regularne to na forum dość często posty na forum z prośbą o pomoc).
michat34
tak wiem ze mozna funkcjami i wyrazeniami ale chcialem wlasnie wyprbowac explode i implode. z ta tablica to faktycznie nie zauwazylem dzieki wielkie za zwrocenie uwagi.

A swoja droga dzieki funkcji preg_match moglbym to udoskonalic zeby wyłapywało całe zdania, tak?
abort
Generalnie - tak. Możesz wyłapywać to, co zechcesz.
michat34
ok to mozna zamykac
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.