Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak wyświetlić określoną liczbę słów ze stringa?, jak policzyć słowa w stringu i wyświetlić określoną ich ilość??
adrian1987
post 26.04.2009, 21:38:55
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 23.12.2005

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


Hej mam takie pytanie, czy jest może jakaś gotowa funkcja w php do wyświetlenia konkretniej liczby słów??
Chcę zrobić coś takiego, że pobieram z bazy MySQL jakiś tekst i na podstronie chcę wyświetlić tylko np 100 słów, a po kliknięciu na "więcej" przejdę na inną podstronę gdzie wyświetlę pełny tekst...
Wiem, że są funkcje, które wyświetlą określoną liczbę znaków, ale nie chcę żeby zaistniała sytuacja, że ostatni wyraz będzie urwany w połowie...
Jeśli nie ma takiej gotowej funkcji to jakie macie pomysły na to?? Bo ja miałbym taki, że najpierw funkcją str_word_count() policzę sobie ilość słów w stringu, jeśli będzie mniejsza niż 100 to wyświetlam cały tekst, a jeśli jest większa to rozbiję to funkcją explode() względem spacji z limitem na 101, i forem przejdę po 100 pierwszych komórkach i wyświetlę zawartość... co wy o tym myślicie??
Go to the top of the page
+Quote Post
bogdan89
post 26.04.2009, 21:47:48
Post #2





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

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


str_word_count" title="Zobacz w manualu PHP" target="_manual - warto poczytać komentarze...
widziałem tam dobre 2-3 gotowe funkcje, które powinny Tobie odpowiadać...
Go to the top of the page
+Quote Post
adrian1987
post 26.04.2009, 23:02:34
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 23.12.2005

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


skorzystałem z funkcji, która wygląda właśnie tak jak zamierzałem ją napisać...
  1. <?php
  2. function WordLimiter($text,$limit=20){
  3.    $explode = explode(' ',$text);
  4.    $string  = '';
  5.      
  6.    $dots = '...';
  7.    if(count($explode) <= $limit){
  8.        $dots = '';
  9.    }
  10.    for($i=0;$i<$limit;$i++){
  11.        $string .= $explode[$i]." ";
  12.    }
  13.      
  14.    return $string.$dots;
  15. }
  16. ?>

Patrzyłem sobie jeszcze na tą funkcję, która też miała wyświetlać określoną liczbę słów, ale jak sprawdzałem to nie wyświetla tyle słów ile określiłem, tylko mniej i zdarza się, że słowo urywa w połowie i wstawia "..." wie ktoś dlaczego??
  1. <?php
  2. function limit_text($text, $limit) {
  3.      if (strlen($text) > $limit) {
  4.          $words = str_word_count($text, 2);
  5.          $pos = array_keys($words);
  6.          $text = substr($text, 0, $pos[$limit]) . '...';
  7.      }
  8.      return $text;
  9.    }
  10. ?>
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 Wersja Lo-Fi Aktualny czas: 18.05.2025 - 07:57