Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skracanie ciągu
Forum PHP.pl > Forum > PHP
Thuunder
Jeśli mam dosyć długi tekst i chciałbym z niego wybrać np. 20 pierwszych słów to w jaki sposób to zrobić ?
Cysiaczek
Jest do tego funkcja w php, tylko nie opamietam jak się nazywa :///

liczy słowa w stringu.

http://pl.php.net/manual/pl/print/function.substr-count.php
Vogel
  1. <?php
  2. echo preg_replace("#((.*? |$){20}).*#si", "$1", $txt);
  3. ?>
Cysiaczek
O.o to ciekawe...
Vogel
Cytat(Cysiaczek @ 4.07.2006, 18:14 ) *
Jest do tego funkcja w php, tylko nie opamietam jak się nazywa :///

liczy słowa w stringu.

http://pl.php.net/manual/pl/print/function.substr-count.php


boszesztmoj. przeczytaj jeszcz raz DO CZEGO sluz ta funkcja. i wierz mi - nie do tego do czego myslisz. liczy ilosc wystapien DANEGO (okreslonego!) ciagu znakow a nie SLOW!
Cysiaczek
Oczywiście, że możesz. Wszystko w połączeniu z trim(" ", $string) policzyć ilość spacji w stringu.
Faktycznie się przejachałem co do tej funcji - źle przeczytałem. Ale jest taka funkcja w php, która zwraca ilośc słów (chociaż może to w jakimś rozszerzeniu było...)
LBO
Można również bez wyrażeń regularnych, ale to raczej jako ciekawostka tongue.gif
  1. <?php
  2. // $text zawiera słowa oddzielone od siebie jedną spacją, bez whitespaces
  3. $first20words = implode(' ', array_slice(explode(' ', $text), 0, 20));
  4. ?>
Thuunder
fajnie, dzięki wielkie za info smile.gif

swoją drogą wyrażenia regularne to całkiem fajny temat!
LBO
Mała optymalizacja (działa nawet z białymi znakami)
  1. <?php
  2. $first20words = implode(' ', array_slice(str_word_count($text, 1), 0, 20));
  3. ?>
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.