Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]skrypt liczacy ilosc słów w tekście
michat34
post
Post #1





Grupa: Zarejestrowani
Postów: 200
Pomógł: 1
Dołączył: 4.08.2012

Ostrzeżenie: (10%)
X----


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..
Go to the top of the page
+Quote Post
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


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
Go to the top of the page
+Quote Post
abort
post
Post #3





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


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).
Go to the top of the page
+Quote Post
michat34
post
Post #4





Grupa: Zarejestrowani
Postów: 200
Pomógł: 1
Dołączył: 4.08.2012

Ostrzeżenie: (10%)
X----


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?

Ten post edytował michat34 12.08.2012, 18:28:10
Go to the top of the page
+Quote Post
abort
post
Post #5





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Generalnie - tak. Możesz wyłapywać to, co zechcesz.
Go to the top of the page
+Quote Post
michat34
post
Post #6





Grupa: Zarejestrowani
Postów: 200
Pomógł: 1
Dołączył: 4.08.2012

Ostrzeżenie: (10%)
X----


ok to mozna zamykac
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.09.2025 - 02:52