Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]takie same słowa w tekście
tenloginjestzaje...
post
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


Witam
Chciałbym pobrać 10 powtarzających się najczęściej słów w tekście, wiem jak usunąć powtarzające się słowa, ale odwrotnie już nie. dzięki za pomoc

  1. $text = preg_replace("/s(w+s)1/i", "$1", $text);
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
robertpiaty
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

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


Ja nie znam innego sposobu jak za pomocą preg_mach wyszukać wszystkie wyrazy.
  1. preg_mach('/(\w+)\s+/i',$text,$return);
  2. $count = array();
  3. foreach($return[1] as $v){
  4. $count[$v] = 1;
  5. }
  6. else {
  7. $count[$v] ++;
  8. }
  9. }


W tablicy count masz wszystkie wyrazy wraz z ilością wystąpień. Możesz sobie teraz tablicę sortować, dzielić itp. Uwaga kod pisałem z głowy więc może zawierać błędy i pewnie trzeba będzie go udoskonalić i sprawdzić. Na pewno będziesz musiał własne wyrażenie regularne napisać bo to moje nie wyłapie ostatniego wyrazu za którym nie ma spacji. Ja chciałem tylko pokazać swój pomysł. Jak byś chciał sprawdzić ile występuje różnych wyrazów w trylogii Sienkiewicza to prawdopodobnie ten kod okazał by się mocno niewydajny (IMG:style_emoticons/default/smile.gif)

Zamiast preg_mach możesz użyć też explode.
Go to the top of the page
+Quote Post
tenloginjestzaje...
post
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


dzięki, ale siedzę od kilku h nad innym problemem. Chcę zmienić dla podstron url z _ na - i stosuje przekerowanie 301 w index, które nie działa. Z góry dziękuje,
  1. <?php
  2. if(substr($_SERVER['HTTP_HOST'], 0, 3)=='_') {
  3. $zamiana = str_replace('_','-',$_SERVER['REQUEST_URI']);
  4. header("HTTP/1.1 301 Moved Permanently");
  5. header("Connection: close");
  6. }
  7. ?>


Ps. a href wcina mi automatycznie tutaj, naturalnie robię bez (IMG:style_emoticons/default/smile.gif)

Ten post edytował tenloginjestzajety 8.05.2015, 23:16:38
Go to the top of the page
+Quote Post
Martin-ZG
post
Post #4





Grupa: Zarejestrowani
Postów: 28
Pomógł: 3
Dołączył: 23.07.2009

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


substr_count
Go to the top of the page
+Quote Post
IProSoft
post
Post #5





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


Powinieneś użyc:

  1. strpos( $_SERVER['REQUEST_URI'], '_' ) !== false


zamiast HTTP_HOST
Go to the top of the page
+Quote Post
tenloginjestzaje...
post
Post #6





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


  1. foreach($text as $word)
  2. {
  3. $count[$word]++;
  4. }
  5. arsort($count);
  6. $i = 1;
  7. foreach($count as $word => $num)
  8. {
  9. if($i >= 10) break;
  10. $word.', ';
  11. $i++;
  12. }


Może ktoś pomoże, nie mogę pobrać zmiennej poza pętle. Jak wstawiam $word w pozostałą część strony to wyświetla jedynie jedno słowo zamiast 10. Nie wiem jak zrobić zmienną dla całej pętli żeby pobrać 10 słów w zmiennej. Dzięki
Go to the top of the page
+Quote Post
untorched
post
Post #7





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

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


Moja nowa koncepcja: http://ideone.com/hMTrkW
Go to the top of the page
+Quote Post
tenloginjestzaje...
post
Post #8





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


dzięki, kawał roboty, ale nie wyświetla tych trzech słów.
Go to the top of the page
+Quote Post
untorched
post
Post #9





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

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


Jak to nie wyświetla? Na ideone.com wyświetla.Pewnie chodzi o $table = [];, więc zamień na $table = array();
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: 3.10.2025 - 10:02