![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 1.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Drodzy uzytownicy forum prosze o pomoc.Szukam funkcji która obliczy mi ilość słów w polu tekstowym.Oto strona na której chciałbym ta funkcje napisać, miała by ona po nacisnieciu przycisku obliczyc ilość słow.
<?php $tresc = (string)$_GET['tresc']; ?> <html> <head> <title>Pole tekstowe</title> </head> <body> <body bgcolor="black"> <br><br> <center> <form action="" method="get"> <textarea name="tresc" input type="text"></textarea> <br><br> <input type="submit" name="submit" value="oblicz ilosc wyrazów" /> </center> </body> </html> Z góry dziekuje.Przepraszam za brak BBcodu ale jestem dopiero poczatkujacy w fdziedzinie programowania komputerowego |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
http://php.net/manual/en/function.strlen.php sprawdź funkcje strlen (np. var_dump(strlen($_POST['tresc']));
PS. $_GETem treść przekazujesz? nie lepiej $_POST? |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 371 Pomógł: 18 Dołączył: 23.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... ale czy czasem funkcja strlen nie zwraca długości ciągu? A jemu chyba chodzi o zliczanie słów w tekście czy ja źle rozumiem?
bbcode dodajesz przez dodanie przed swoim kodem [php ] i po kodzie [/ php] oczywiście bez spacji ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 1.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak, chodzi mi zliczanie ilości wyrazów (słów)
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Tak, chodzi mi zliczanie ilości wyrazów (słów) Najprostszym przybliżonym sposobem to policzenie ilości *spacji i dodanie 1 do wyniku. W przybliżeniu powinno się zgadzać z ilością słow. Edit *spacji lub ogólnie białych znaków Ten post edytował flashdev 8.08.2010, 14:09:36 -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
http://php.net/manual/en/function.strlen.php sprawdź funkcje strlen (np. var_dump(strlen($_POST['tresc'])); Yyy? @topic Policzenie słów to wcale nie takie proste zadanie, musiałbyś mieć najlepiej jakiś słownik... ew. rozbić po spacjach, przelecieć pętlą a w niej sprawdzać długość i pierwszy znak: +/- coś takiego
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 1.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tylko czasem jak ktoś szybko pisze może zorbic wiecej spacji np " acha to jest Ala" > wtedy wyjdzie mi ze jest 6 wyrazów a jest 4
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Tylko czasem jak ktoś szybko pisze może zorbic wiecej spacji np " acha to jest Ala" > wtedy wyjdzie mi ze jest 6 wyrazów a jest 4 Widać oglądałeś moje rozwiązanie... -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Tylko czasem jak ktoś szybko pisze może zorbic wiecej spacji np " acha to jest Ala" > wtedy wyjdzie mi ze jest 6 wyrazów a jest 4 Nie zawsze najważniejsza jest taka dokładność. Zadaj sobie pytanie czy w tym przypadku jest? Jeśli ktoś niedbale pisze i wstawia po kilka spacji lub nie używa spacji po przecinku/kropce, to niech liczy się z tym, że wynik funkcji nie będzie prawidłowy. Jeśli przepuszczasz przez funkcję jakieś komentarze czy coś podobnego to jak ktoś będzie chciał na złość śmieci przemycić to i tak to zrobi. A jak moderujesz wpisy to i tak nie dopuścisz do pojawienia się śmieci. -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 200 Pomógł: 40 Dołączył: 26.08.2009 Skąd: Kobiernice Ostrzeżenie: (0%) ![]() ![]() |
aby uwzgledniało liczby: Ten post edytował Armstrong 8.08.2010, 14:31:34 -------------------- // NOPE
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 006 Pomógł: 111 Dołączył: 23.07.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chodzi o spacje na początku i końcu stringu, to ltrim i ptrim. Ponadto możesz sprawdzać czy znaki są między a-z i A-Z oraz czy chcesz liczby.
-------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chodzi o spacje na początku i końcu stringu, to ltrim i ptrim. Ponadto możesz sprawdzać czy znaki są między a-z i A-Z oraz czy chcesz liczby. Albo trim dla jednego i drugiego... @topic Ludzie... dałem mu gotowca, który usuwa zbędne znaki i liczy słowa... + ilość znaków... -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 1.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Armstrong dzieki za pomoc normalnie piwo Ci wisze
![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
To ja nieco rozwinę post fifiego, który moim zdaniem jest najbliżej prawidłowych rezultatów. Najpierw wszystkie znaki przestankowe zamieniamy na spacje, gdyż de facto oddzielają wyrazy. Do tego wora wrzucamy ,.?/;-!|\#_ a po takiej zamianie robimy jeszcze wyrażenie regularne, które akceptuje jedynie litery i spacje. No chyba, że decydujemy się by każda liczba też była uznawana za wyraz. Wtedy musimy jako zamienianie na spacje rozszerzyć o znaki działań w poprzednim kroku. Ciekawostką jaką być może wiele osób nie zna jest fakt ujmowania w regexp polskich znaków poprzez coś innego niż [a-ząćęłńóśżź], a jest to możliwe poprzez użycie znacznie krótszego zapisu [a-ż]
![]() ![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
[...] Ciekawostką jaką być może wiele osób nie zna jest fakt ujmowania w regexp polskich znaków poprzez coś innego niż [a-ząćęłńóśżź], a jest to możliwe poprzez użycie znacznie krótszego zapisu [a-ż] ![]() [...] Warto podkreślić to zdanie, sam nie wiedziałem a teraz widzę jak mogłem uprościć niejedną linijkę kodu. -------------------- |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 10.10.2009 Ostrzeżenie: (10%) ![]() ![]() |
-------------------- [zmoderowane by nospor]
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Bym nie dodał... Jeśli chodzi o zapytanie akceptujące jedynie litery i spację, to ma to być zastępowanie wszystkiego co nimi nie jest znakiem pustym lub spacją (i tak następny krok nam wszystkie nadmiarowe poskraca). Całość skryptu jest niewrażliwa na byki w stylu wielokrotnych spacji obok czy też zapominania spacji po znakach przestankowych. Większość skryptów tutaj rozpozna zdanie "Modrzew,mimo iż posiada jaskrawo-zielone igły,gubi je jesienią." jako 7 wyrazowe, co jest przekłamaniem z racji nie uwzględnienia myślnika oraz braku spacji po przecinkach. Przelećcie teraz algorytmem jaki podałem i zobaczcie, że owe znaki u mnie stają się spacjami. Co automatycznie koryguje wyniki
![]() ![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 200 Pomógł: 40 Dołączył: 26.08.2009 Skąd: Kobiernice Ostrzeżenie: (0%) ![]() ![]() |
@up
z moim rozwiązaniem pokazuje 10 wyrazów i nie trzeba wiele kombinować ludzie skapujecie się, że podałem rozwiązanie? Ten post edytował Armstrong 8.08.2010, 17:11:29 -------------------- // NOPE
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 309 Pomógł: 56 Dołączył: 3.11.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
str_word_count ?
Coś nie tak z tą funkcją, że jej nie chcecie użyć? |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.05.2025 - 13:00 |