Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zawijanie wierszy + znak '>'
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
voytass
Witam

przedstawiam do dyskusji podejscie rozwiazania problemu lamaniu tekstu w liscie odpowiedzi. Dodatkowo przed kazda 'zlamana' linia znajduje sie znak (najczescie jest to '>')

oto kod:
  1. <?php
  2.  
  3. if (!empty($tresc)){ // sprawdzamy czy tresc listu na ktory odpowiadamy nie jest pusta
  4. $dlugosclinii = 70;  //ilosc znakow po ktorych nastepuje lamanie linii
  5. $znakpoczatkulinii = "> "; // znak w lini lamanej
  6. $wiersze = explode("n",$tresc);
  7. $nowatresc = array();
  8. foreach($wiersze as $wiersz) {
  9. if (strlen($wiersz) > $dlugosclinii) { // sprawdzamy czy wiersz jest dluzszy od alozonej dl.
  10. // jesli jest dluzszy to dany wiersz dzielimy na okreslone dlugosci czesci 
  11. $nowatresc[] = $znakpoczatkulinii.wordwrap($wiersz,$dlugosclinii,"n".$znakpoczatkulinii,1);
  12. } else {
  13. // jesli wiersz nie jest dluzszy niz zalozona, maksymalana dlugosc to tylko dodaje
    my odpowiedni znak na poczatku ciagu
  14. $wiersz = $znakpoczatkulinii.$wiersz;
  15. $nowatresc[] = $wiersz;
  16. }
  17. }
  18. // dodajemy odstep na odpowiedz
  19. print "nnnn";
  20. // wyswietlamy cala tresc odpowiedzi
  21. foreach($nowatresc as $wiersz) {
  22. print $wiersz;
  23. }
  24. }
  25. ?>


jak wy rozwiazujecie ten problem?
jak wyglada wazs kod?
czy moze ma ktos prostrze rozwiazanie
bela
Hmm, a czy działa też jeśli mamy np 220 linii tzn 3 razy łamie?
slammer
Idealnie... wszystko pięknie działa. Pozwól, że wykorzystam ten kod w swoim skrypcie. Ten problem był zawsze moim utrapieniem, spadłeś mi z tym prosto z nieba. rolleyes.gif
Spirit86
  1. <?php
  2.  $wiersze = explode("n",$tresc);
  3. ?>

nie wszędzie działa ...

  1. <?php
  2.  $wiersze = explode("r|n",$tresc);
  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.