Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyciąganie fragmentu stringa
kamil_lk
post
Post #1





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Cześć.

Szukam jakiejś funkcji, sposobu na wyciągniecie stringa podanego w formularzu z całości tekstu plus do tego parę słów przed i po wystąpieniu podanego słowa.

Tekst:
Lorem Ipsum jest tekstem stosowanym jako przykładowy wypełniacz w przemyśle poligraficznym. Został po raz pierwszy użyty w XV w. przez nieznanego drukarza do wypełnienia tekstem próbnej książki. Pięć wieków później zaczął być używany przemyśle elektronicznym, pozostając praktycznie niezmienionym. Spopularyzował się w latach 60. XX w. wraz z publikacją arkuszy Letrasetu, zawierających fragmenty Lorem Ipsum, a ostatnio z zawierającym różne wersje Lorem Ipsum oprogramowaniem przeznaczonym do realizacji druków na komputerach osobistych, jak Aldus PageMaker

Fragment z formularza:
wypełniacz w przemyśle

Wynik:
... stosowany jako przykładowy wypełniacz w przemyśle poligraficznym. Został ...

Pozdrawiam, Kamil
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


strpos + substring, za pomocą pierwszego pobierasz pozycję, odejmujesz od niej kilka znaków (ew. szukasz spacji kilka znaków przed, żeby ucinać całe słowa) i następnie przycinasz substringiem
Go to the top of the page
+Quote Post
kamil_lk
post
Post #3





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


dzięki, ale jak nazwa działu wskazuje szukam gotowca smile.gif
Go to the top of the page
+Quote Post
!*!
post
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(kamil_lk @ 16.12.2012, 14:01:11 ) *
dzięki, ale jak nazwa działu wskazuje szukam gotowca smile.gif


I podał Ci gotowca, w komentarzach masz przykład. Dorzuciłbym do tego str_word_count.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
kamil_lk
post
Post #5





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Okej, coś poskrobałem dzisiaj i niby wszystko działa.
Jak by ktoś szukał to poniżej moje rozwiązanie.

  1. /*
  2. *
  3. * $string - zmienna przechowująca cały tekst
  4. * $szukany - tekst, którego szukamy ( w moim przypadku tekst pochodzący z formularza)
  5. * $przed, $po - ile znaków wyświetlić przed i po znaleźonej frazie
  6. *
  7. */
  8.  
  9. function utnij($string, $szukany, $przed = 60, $po = 60){
  10. $poczatek = strpos($string, $szukany);
  11. $koniec = $poczatek+strlen($szukany)-1;
  12. $start = $stop = '';
  13.  
  14. if($poczatek < $przed){
  15.  
  16. for($i = 0; $i < $poczatek; $i++) $start .= $string[$i];
  17. $uciety = $start.'<span style="background-color: #bde8ff;">'.$szukany.'</span>';
  18.  
  19. } else {
  20.  
  21. for($i = $poczatek-1; $i>=$poczatek-$przed-1; $i--) $start .= $string[$i];
  22. $uciety = '...'.strrev($start).'<span style="background-color: #bde8ff;">'.$szukany.'</span>';
  23.  
  24. }
  25.  
  26. if($koniec+$po < strlen($string)-$przed-strlen($szukany)){
  27.  
  28. for($i = $koniec+1; $i<$koniec+$po+1; $i++) $stop .= $string[$i];
  29. $uciety = $uciety.$stop.'...';
  30.  
  31. } else {
  32.  
  33. for($i = $koniec+1; $i < strlen($string); $i++) $stop .= $string[$i];
  34. $uciety = $uciety.$stop;
  35.  
  36. }
  37.  
  38. return $uciety;
  39.  
  40. }


Ten post edytował kamil_lk 16.12.2012, 23:32:18
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 04:13