Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]takie same słowa w tekście
Forum PHP.pl > Forum > Przedszkole
tenloginjestzajety
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);
robertpiaty
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 smile.gif

Zamiast preg_mach możesz użyć też explode.
tenloginjestzajety
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 smile.gif
Martin-ZG
substr_count
IProSoft
Powinieneś użyc:

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


zamiast HTTP_HOST
tenloginjestzajety
  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
untorched
Moja nowa koncepcja: http://ideone.com/hMTrkW
tenloginjestzajety
dzięki, kawał roboty, ale nie wyświetla tych trzech słów.
untorched
Jak to nie wyświetla? Na ideone.com wyświetla.Pewnie chodzi o $table = [];, więc zamień na $table = array();
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.