Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ograniczenie ilości wyświetlanych znaków
Forum PHP.pl > Forum > Po stronie przeglądarki
tdzierza
Witam.

Nurtuje mnie następujący problem ...

wyciągam z bazy tekst, wrzucam do zmiennej , i ograniczam ilość znaków w ten sposób:

$zmienna.substring(0,250)

Zagrożenie w tym zapisie jest tego typu, iż przy użyciu entera , tekst się może rozjechać, przypuśćmy wpisując jeden znak i naciskajac enter ..

A ja musze mieć w jednym tekście max 4 linie, tyle mniej więcej wychodziło przy tych 250 znakach.

Wszelkie sugestie i rady mile widziane smile.gif
John
Nie bardzo rozumiem, co masz tu na myśli.

Ale możesz zamienić entery na spacje wyrażeniem regularnym albo przy wyciaganiu z bazy ( czyli przed substring ), albo przy walidacji w momencie wgrywania do bazy.
tdzierza
Enter ma być w pełni funkcjonalny także jakiekolwiek jego zamiany nie wchodzą w gre ....

Chodzi o to że funkcja substring ogranicza tekst wedlug podanej max ilości znaków.
Używając entera w taki sposób:
a<br/>
b<br/>
c<br/>
d<br/>
Przy ograniczeniu do 200 znaków takich nowych wierszy będe mógł jesczez troche wstawić, natomiast mój tekst nie może przekroczyć wiecej niż 4 linie.
PUPI
Policz ilość enterów i obetnij ze stringa wszystko po 4 enterze.
tdzierza
Tak to niewątpliwie najlepszy pomysł który równiez w pewnym momecie wpadł mi do głowy.

Ale nie potrafiłem go zrealizować , w php owszem ale nie w java script.

Tekst ktory przypisuje w zmiennej js, moglby zostac przetworozny juz w php, ale wtedy musialbym go przekazywac w formie nienaruszonej i zmienionej, a ja chce go podac w formie orginalnej i w javascript raz wysiwetlic w czterech linijkach a raz w orginale.

Znalazłem w sieci pewien skrypt i torche go dostosowałem do moich potrzeb:

  1. <script language="JavaScript">
  2.  
  3. function splitString (stringToSplit,separator) {
  4.  
  5. arrayOfStrings = stringToSplit.split(separator)
  6.  
  7. for (var i=0; i < 3; i++) {
  8.  
  9. if(arrayOfStrings[i].length>240)
  10. {
  11. document.write (arrayOfStrings[i])
  12. break
  13. } else
  14. document.write (arrayOfStrings[i] + "<br />")
  15. }
  16. }
  17.  
  18.  
  19. splitString("Tekst testowy<br />Tekst testowy<br />","<br />")
  20.  


Tylko on ciągle nie jest wolny od wad ponieważ, w przypadku gdy w pierwszej lini tekst<230 to wstawi <br/> ... juz nie tak zle bo maksymalnie rozjedzie sie o 230 znakow * 3 linie co nie jest tak straszne jak w przypadku który opisywałem na początku.
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.