zliczanie przelaman linii tekstu

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Bartlomiej_Dwornik
Posty: 14
Rejestracja: czw mar 10, 2005 1:17 pm
Lokalizacja: Wrocław
Kontakt:

zliczanie przelaman linii tekstu

Post autor: Bartlomiej_Dwornik »

Witam,
problem wyglada nastepujaco: jakis tekst jest wpisany w tabele o stalej szerokosci. w zaleznosci od tego, jaki jest dlugi - lamie sie do kilku wierszy. Czy mozna w jakis sposob policzyc ilosc takich wierszy, zeby wciagnac te wartosc do zmiennej?
FanFataL
Nowy
Nowy
Posty: 113
Rejestracja: pn lut 28, 2005 1:33 am
Lokalizacja: Kraków / Katowice / Bydgoszcz
Kontakt:

Re: zliczanie przelaman linii tekstu

Post autor: FanFataL »

[php]<?php
$text='pierwsza linia
druga linia
trzecia linia
czwarta linia';
$ile_wierszy=substr_count($text,"\n")+1;
?>[/php]

Pozdro :wink:
...
Bartlomiej_Dwornik
Posty: 14
Rejestracja: czw mar 10, 2005 1:17 pm
Lokalizacja: Wrocław
Kontakt:

Re: zliczanie przelaman linii tekstu

Post autor: Bartlomiej_Dwornik »

FanFataL pisze:[php]<?php
$text='pierwsza linia
druga linia
trzecia linia
czwarta linia';
$ile_wierszy=substr_count($text,"\n")+1;
?>[/php]
...
zeby ten kod zadzialal, musze miec polamane linie juz w zmiennej $text, a skoro sam wiem ile razy linie przelamalem, nie musze tego liczyc ;-)

Twoj przyklad:

Kod: Zaznacz cały

<?php 
$text='Jakiś tekst Jakiś tekst Jakiś tekst Jakiś tekst Jakiś tekst Jakiś tekst Jakiś tekst Jakiś tekst Jakiś tekst Jakiś tekst'; 
$ile_wierszy=substr_count($text,"\n")+1; 
?> 

<table style="width: 300px; border: 1px solid red;">
	<tr>
		<td><?php echo $text; ?></td>
	</tr>
</table>

ilość linii: <?php echo $ile_wierszy; ?>
wynik: 1 linia, a powinno byc 3. Zobacz: http://www.test.regional.pl/bartek/zliczanie_linii.php
_ash_
Nowy
Nowy
Posty: 37
Rejestracja: wt lut 22, 2005 8:19 am
Kontakt:

Re: zliczanie przelaman linii tekstu

Post autor: _ash_ »

Bartlomiej_Dwornik pisze:Witam,
problem wyglada nastepujaco: jakis tekst jest wpisany w tabele o stalej szerokosci. w zaleznosci od tego, jaki jest dlugi - lamie sie do kilku wierszy. Czy mozna w jakis sposob policzyc ilosc takich wierszy, zeby wciagnac te wartosc do zmiennej?
Jak na moj gust to ciezka sprawa, bo:
1. w zaleznosci od wielkosci fontow zmiesci sie rozna liczba znakow w linii
2. rozne przegladarki maja roznie wymiaruja nawet te same fonty
3. kazda przegladarka ma mozliwosc zmiany rozmiaru czcionki
4. fonty sa najczesciej proporcjonalne, wiec problem sam w sobie jest skomplikowany.
Przytym punkty 1-3 (a na 100% 2 i 3) nie sa mozliwe do kontrolowania przez tworce stony/skryptu.
Bartlomiej_Dwornik
Posty: 14
Rejestracja: czw mar 10, 2005 1:17 pm
Lokalizacja: Wrocław
Kontakt:

Re: zliczanie przelaman linii tekstu

Post autor: Bartlomiej_Dwornik »

_ash_ pisze:Jak na moj gust to ciezka sprawa, bo (...):
ciezka - bez watpienia. pytanie, czy mozliwa do wykonania...
_ash_
Nowy
Nowy
Posty: 37
Rejestracja: wt lut 22, 2005 8:19 am
Kontakt:

Re: zliczanie przelaman linii tekstu

Post autor: _ash_ »

Moim zdaniem nie do rozwiazania, bo napisales:
Bartlomiej_Dwornik pisze:wynik: 1 linia, a powinno byc 3. Zobacz: http://www.test.regional.pl/bartek/zliczanie_linii.php
A gdy sobie ustawisz np. w IE wielkosc tekstu na "bardzo duza", to juz sa 4 linie. W firefoxie, mozesz nawet tak powiekszyc, zeby bylo po jednym wyrazie w kazdej linijce.
Czesciowo problem ulatwia ustawianie wzglednych rozmiarow tabelki (np. w em'ach), ale tutaj nie da sie wkomponowac w to grafiki (tzn. da sie, ale to kupa roboty i efekty beznadziejne przy skalowaniu).
Bartlomiej_Dwornik
Posty: 14
Rejestracja: czw mar 10, 2005 1:17 pm
Lokalizacja: Wrocław
Kontakt:

Re: zliczanie przelaman linii tekstu

Post autor: Bartlomiej_Dwornik »

_ash_ pisze:Moim zdaniem nie do rozwiazania, bo napisales:
Bartlomiej_Dwornik pisze:wynik: 1 linia, a powinno byc 3. Zobacz: http://www.test.regional.pl/bartek/zliczanie_linii.php
A gdy sobie ustawisz np. w IE wielkosc tekstu na "bardzo duza", to juz sa 4 linie. W firefoxie, mozesz nawet tak powiekszyc, zeby bylo po jednym wyrazie w kazdej linijce.
wlasnie rzecz w tym zeby wyciagnac te liczbe do zmiennej. wlasnie z tych powodow, o ktorych piszesz, nie sprawdzi sie ani ustawienie maksymalnej ilosci znakow w linii, ani liczenie przelaman linii w kodzie...
_ash_ pisze:Czesciowo problem ulatwia ustawianie wzglednych rozmiarow tabelki (np. w em'ach), ale tutaj nie da sie wkomponowac w to grafiki (tzn. da sie, ale to kupa roboty i efekty beznadziejne przy skalowaniu).
tabela musi miec staly rozmiar w pikselach, tego nie przeskocze :(
_ash_
Nowy
Nowy
Posty: 37
Rejestracja: wt lut 22, 2005 8:19 am
Kontakt:

Re: zliczanie przelaman linii tekstu

Post autor: _ash_ »

To moim zdaniem nie ma szans, bo musialbys zasymulowac od strony serwera dokladnie przegladarke klienta ze wszystkimi jej ustawieniami, w szczegolnosci tymi, ktorych sie nie da odczytac, czyli np. powiekszenia czcionki. Podejrzewam, ze da sie to obejsc we flashu, ale pewnie tego tez nie chcesz. (Zreszta o flashu sie nie wypowiadam, bo sie nie znam.)
Bartlomiej_Dwornik
Posty: 14
Rejestracja: czw mar 10, 2005 1:17 pm
Lokalizacja: Wrocław
Kontakt:

Re: zliczanie przelaman linii tekstu

Post autor: Bartlomiej_Dwornik »

_ash_ pisze:To moim zdaniem nie ma szans(...)
flash faktycznie odpada - nie stac mnie na narzedzia :-) ale dzieki za probe pomocy, podpytam na forum javasrciptowcow, moze tam sie cos uda :-)
FanFataL
Nowy
Nowy
Posty: 113
Rejestracja: pn lut 28, 2005 1:33 am
Lokalizacja: Kraków / Katowice / Bydgoszcz
Kontakt:

Re: zliczanie przelaman linii tekstu

Post autor: FanFataL »

Bartlomiej_Dwornik pisze:Czy mozna w jakis sposob policzyc ilosc takich wierszy, zeby wciagnac te wartosc do zmiennej?
Mój skrypt dobrze zliczył złamane wiersze....

Sorki, ale źle cię zrozumiałem :? odnośnie tego łamania :-D

Pozdro :wink:
...
ODPOWIEDZ