![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 12.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Potrzebuję obrobić stringa ale w taki sposób, żeby ucinało go na spacji znajdującej się jak najbliżej N-tego znaku. Czyli mam powiedzmy tekst mający 300 znaków a muszę pobrać ok 200 znaków ale sensownej treści (bez urwanego w połowie słowa na końcu stringa). Z góry dziękuję za pomoc |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
http://pl.php.net/manual/en/function.wordwrap.php
A jak ci będzie mało to poczytaj komentarze |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Musisz podzielić stringa na tablicę wyrazów,potem przepuścić przez pętlę która zlicza ilość znaków wyrazu z tablicy,jeśli nie przekracza 200
znaków ,dodajesz kolejny wyraz z tablicy i zliczasz od nowa. Ten post edytował Rid 12.09.2011, 13:24:18 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Cytat Musisz podzielić stringa na tablicę wyrazów,potem przepuścić przez pętlę która zlicza ilość znaków wyrazu z tablicy,jeśli nie przekracza 200 znaków ,dodajesz kolejny wyraz z tablicy i zliczasz od nowa. wydaje mi się, że to za bardzo przekombinowany sposób i przy dłuższym tekście może być nie wydajny - osobiście używam kombinacji funkcji strlen, strpos, i substr - ucina tekst na spacji, zwraca tekst nie dłuższy niż podana maksymalna długość
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
@Rid - za dużo kombinacji.
Wystarczy kombinacja substr i strpos albo wordwrap. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat wydaje mi się, że to za bardzo przekombinowany sposób i przy dłuższym tekście może być nie wydajny Robię to samo w C# ,czemu operacje na stringach nie są tak łątwe jak w php (IMG:style_emoticons/default/sad.gif) (IMG:style_emoticons/default/php.gif) Twój przykład wydaje mi się lepszy. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 12.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie. Poszło delikatnie zmodyfikowane trimText (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
tehaha, muszę też Tobie podziękować,ten sposób działa świetnie.Udało mi się przerobić na c#.Miałem lekki problem ze
znalezieniem equiwalentu strrpos w c#,ale last indexOf zrobił swoje.Dziwne ,że nie mogłem nigdzie znaleźć takiego sposobu w C# tylko zawiłe kluczki z tablicami znaków.Nikt mi teraz nie powie ,że nie warto obserwować tematów ,na innych forach. (IMG:style_emoticons/default/rsc.gif) Ma tylko drobną wadę jak ucinamy po np 20 znaku,a pierwszy wyraz jest dłuższy niż 25 znaków to wywala całego stringa i zwraca samo ".....",przynajmniej u mnie tak działa ,ale da rady przeżyć nikt poważny,chyba nie będzie wpisywał 100 x "a"; Ten post edytował Rid 12.09.2011, 23:28:12 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 16:57 |