Mam mały problem, ponieważ moj aktualny skrypt chciałbym sobie przerzucić do klas i niestety napotkałem problem.
Zadania klasy :
- pobranie tekstu, mierzenie jego wielkości, podzielenie go na n wierszy, wycentrowanie góra dól, lewa i prawa, umieszczenie go na obrazku.
Wszystko pięknie ładnie jedyne co jest moim problemem to jezeli podaje 2 teksty na raz ( klasa sama w sobie działa tyle razy ile jest róznych tekstów. )
Nie będe pokazywał całej klasy bo nie jest ona chyba jakoś istotna
$kolumna = 0; for($j=0;$j<$elementy;$j++){ $spr_text = imagettfbbox($rozmiar_tytulu, 0, $font, $text[$kolumna]); if($spr_text[2]<$szerokosc){ $text[$kolumna] .= $tablica[$j]." "; } else{ $kolumna+=1; $j--; // po to by uwzględniało w kolejnej kolumnie ostatni wyraz który jest sprawdzany } }
problem jest taki, że jeżeli mam więcej niż jeden text to $kolumna przyjmuje wartości 2 i 3 ... ( w przypadku dzielenie tekstu na 2 rzędy )
a dodawanie tekstu działa na podstawie pętli for ( wykonuje się tyle razy ile jest tekstów ) i za każdą razą dodaje tekst 0 i 1 ( oczywiście odpowiednio wyśrodkowany )
Jedyne czego od was potrzebuje to zrozumieć dlaczego tak się dzieje ze mimo iż podaje przed pętlą for, że kolumna przed wejściem do niej ma się równać 0. Wygląda to tak jakby pętla w sobie trzymała ostatnią wartość zmiennej kolumna i przed wejściem do pętli zwiększała ją o 1.
i tak w nawiasie wiem, że wystarczyło by pomnożyć ( w pętli gdzie dodaje się już tekst na obrazek ), ale nie tak chciałbym rozwiązać ten problem.