Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Tworzenie "wstępu" do tekstu
Forum PHP.pl > Forum > Przedszkole
thomson89
Witam! Chciałbym stworzyć, taki wstęp do tekstu. Np. pierwsze 10 słów i wyświetlanie ...
phpion
mad.gif Super, trzymamy więc za ciebie kciuki.

PS: http://php.net/manual/pl/book.strings.php znajdziesz tutaj coś, co będzie ci pomocne.
skowron-line
Cieżko mi uwierzyć że nie wiesz jak się do tego zabrać.
@DOWN
No dobra niech sam się pomęczy. No i rzeczywiście był błąd smile.gif
phpion
@skowron-line:
I po co rzucasz gotowca, który i tak nie będzie działał do końca poprawnie? Daj chłopakowi samemu wysilić szare komórki...
thek
2 mozliwości... Albo robisz w bazie dodatkowe pole tekstowe, które wyświetlasz, albo wycinasz z głównego określoną ilość liter lub wyrazów. W zalezności od wersji albo biblioteczka funkcji na stringach str_* (konkretnie substr) albo wyrażenie regularne smile.gif

EDIT: w przypadku utf lepiej mb_ dodatkowo zaprząc winksmiley.jpg
thomson89
Tylko pytanie, jakiej funkcji użyć.

Mogę użyć: explode(); str_split(); oraz zbitkę str...();

Co najlepiej?

EDIT: z lekką ręką

  1. <?php
  2.  
  3. $tekst = 'Usnęli wszyscy. Sędzia w jasełkach ukryte chłopięta. Biegła i panien nie pytaj: co porabiał? Każdy, gdzie podział się? szukać prawodawstwa w nią śrut cienki! Trzymano wprawdzie pękła jedna króluje postać, jak bawić się nie mógł. Jak mnie dziecko do dworu uprawne dobrze na stosach Moskali siekąc wrogów, a wszystko strwonił, na ziemię ojczystą której lat blisko dwadzieści i jąkał się z jutrzenką napotka się dziś nagodzi do woli nagadać nie przeczym, że był legijonistą przynosił kości stare na ziemię ojczystą której nigdy nie miała, założyła ręce ciągnął wzdłuż i na tym obrazem. Właśnie rzecz daléj w którym wszystko przepasane, jakby za nim psów gromada. Gracz szarak! skoro pobył mało przejmował zwyczaj, którym świecą gęste kutasy jak pożar na utrzymanie. Lecz wtenczas panowało takie oślepienie, Że ta prędka, zmieszana rozmowa w podróży. Była to mówiąc, że odbite od Rejenta, szczuplejszy i Asesor, puścił z Warszaw mam list, to mówiąc, że gotyckiej są rowni. Choć Sędzia spał. Więc rozwiązane widział swych domysłów tysiące kroków zamek na urząd wielkie polowanie. I włos u nas. Do zobaczenia! tak pan tak nas powrócisz cudem na.';
  4.  
  5. $tableWithText = explode(' ', $tekst);
  6.  
  7. $i = 0;
  8. while($i <= 10){
  9. if($i != 0)
  10. print ' ';
  11.  
  12. print $tableWithText[$i];
  13.  
  14. if($i==10)
  15. print '...';
  16. $i++;
  17. }
  18.  
  19. ?>
Vardamir
Po co tworzyć z tego tablicę. Użyj substr() jak sugerował kolega wyżej...

  1. $skroconytekst=substr($tekst,0,10)."...";


Poczynając od pierwszego znaku pobierasz 10 kolejnych ze zmiennej $tekst i tyle smile.gif
potreb
Wstęp zawsze robię poprzez dodatkowe pole, wtedy sam kontrolujesz ile tekstu ma byc.
skowron-line
Cytat(Vardamir @ 18.11.2009, 15:42:51 ) *
Po co tworzyć z tego tablicę. Użyj substr() jak sugerował kolega wyżej...

  1. $skroconytekst=substr($tekst,0,10)."...";


Poczynając od pierwszego znaku pobierasz 10 kolejnych ze zmiennej $tekst i tyle smile.gif

Gdybyś przeczytał 1 post wiedziałbyś że chodzi o 10 pierwszych wyrazów a nie znaków.
Vardamir
A tak, ale dużo łatwiej wyświetlić powiedzmy 25 znaków i kropeczki, nie trzeba się tyle męczyć, a efekt praktycznie identyczny. Dodatkowo zawsze wiemy jakie wymiary będzie mieć pole tektu i łatwiej go formatować.
skowron-line
Cytat(Vardamir @ 18.11.2009, 15:54:25 ) *
A tak, ale dużo łatwiej wyświetlić powiedzmy 25 znaków i kropeczki, nie trzeba się tyle męczyć,

To że ty masz z tym problem nie znaczy że reszta się z tym męczy. No i 2 sprawa jak wygląda jak wyraz jest urwany po 3 literach.

Cytat(Vardamir @ 18.11.2009, 15:54:25 ) *
a efekt praktycznie identyczny.

Prawie robi wielką różnicę.
thomson89
Pozostanę jednak przy swoim...

Co jezeli te 25 znaczków obejmuje 10 słów i dwie litery słowa następnego? Niepraktyczne.
hausner15
No to ewentualnie coś takiego:

  1. $zmienna = substr($dlugi_tekst, 0, strpos($dlugi_tekst, ' ', 25));


25 znaków + x znaków do końca ostatniego słowa.

Pozdrawiam.

erix
Ok, a co zrobicie w sytuacji, gdy zajawka przerwie jakiś tag w środku, nie będzie domknięcia?
thek
Ja w zajawce zawsze zabraniam używać tagów, a nawet jeśli wrzucą to na takich kolesi wrzucam strip_tags. Potem prega walnąć by wyjął 10 pierwszych wyrazów i do pola zajawka smile.gif Jak ktoś woli może w locie tego prega robić.
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.