[PHP] Liczenie linii...

0

Witam.
Czy jest jakaś możliwość by wyświetlać na stronie tylko daną liczbę linii? Chodzi mi o to, że przy stałej szerokości np. 500px i marginesach ustawionych na 0px tekst z danej zmiennej zostanie wypisany linia po linii dopóki nie zostanie wyświetlonych np. 10 linii... Trochę zagmatwane ale mam nadzieję, że rozumiecie o co mi chodzi...

Z góry dziękuję za pomoc :)

0

wykrywaj znak konca linni - jak wystapi 10 razy to koncz wyswietlanie

0

Ale w jaki sposób? Chce aby tekst był ciągły... Nie będzie w tekście nigdzie /n :|

0

Przydałaby się tu funkcja licząca długość linni w pixelach, nie wiem czy takowa jest w PHP ale np. w C++ jest, ale jeśli nawet jej nie ma to nie problem ją napisać. Jeżeli ustalimy, że będziesz używał określonej czcionki to możesz zmierzyć szerokość w pixelach każdego znaku, chyba że w PHP jest możliwość pobrania informacji o czcionce, w co raczej wątpie. Tak więc mając już szerokości znaków, piszemy funkcję która przechodzi znak po znaku i dodaje szerokości znaków.
Kolejny krok to rozdzielić tekst na wyrazy, czyli funkcja explode. Teraz dodajemy długości wyrazów jeśli suma długości wyrazów w pixelach jest mniejsza od 500 px ale dodanie dlugości w pixelach kolejnego wyrazu będzie wieksza od 500 px to znaczy, że przechodzimy do nowej linni i tak robimy aż osiągniemy daną ilość linii.

Pozdrawiam

0

Chcesz w php policzyć ilość linii? W php nie masz pojęcia o rozmiarze czcionki, wymiarach okna przeglądarki. Możesz to zrobić co najwyżej w JS.

0

explode( "\n", $string )

Pętla wybierająca 10 liń (tablic). I return.

0
b4rtaz napisał(a)

explode( "\n", $string )

Pętla wybierająca 10 liń (tablic). I return.

nie-e
w tekście nie ma żadnych "\n" - jakbyś czytał posty to byś wiedział
powyższy kod bez pętli mógłby być:

$txt = implode("\n", array_slice( explode( "\n", $txt), 0, 10));

ale tutaj potrzebujesz wysokość linijki danej czcionki, szerokość każdej literki, obszar na którym ma być to rysowane, możesz posłużyć się na przykład funkcją z biblioteki gd - imageftbbox / imagettfbbox
pokombinuj, ale może po prostu pobierz nie pierwsze 10 linijek tylko na przykład pierwsze powiedzmy 250 literek (albo 256 żeby równo było)

0

Zakładając, że większa ilość linii może być w kodzie, nie powinna tylko być wyświetlana, możesz zrobić div-a z szerokością 500px, wysokością 10em i overflow: hidden. Naturalnie wysokość linii powinna być ustawiona na 1em. (wysokośc div-a = 10x wysokość linii)

TU długi tekst
```

Przy podawaniu wysokości najlepiej stosuj skalowalne jednostki, takie jak np. em.

0

200 znaków? A co jak ktoś ma dużą czcionkę w przeglądarce i 200 znaków nie zmieści mu się w tych 500px ? Nie zobaczy 10 linii, a znacznie mniej.
Ustalanie co wyświetlać a co nie po stronie serwera, gdzie nie masz pojęcia jak to u użytkownika w oknie przeglądarki się wyświetla to nie jest dobry pomysł.

1 użytkowników online, w tym zalogowanych: 0, gości: 1