![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam problem, gdyż nie wiem jak najpeiej napisać program, by był jak najbardziej optymalny w działaniu, proszę o radę. Zadanie Mam tekst i sprawdzam jego długość funkcją zwraca mi ona szerokość danej zmiennej do której jest przypisany tekst, w pikselach. Następnie stawiam warunek, co ma się stać z tym tekstem, jeżeli będzie on dłuższy niż 350 px. Cała trudność polega na tym, że tekst ma być pisany w jednej linii do ostatniej spacji, która jest przed wartością 350 px, następnie pozostała część tekstu ma zostać przeniesiona do następnej linii już w całości. Przykład Tekst ma 380 pikseli szerokości, a ostatnia spacja przed 350 px znajduje się na szerokości 345 px. Czyli cały tekst dzielimy na 2 części tą do 345px i tą co zostanie. Jak to zrobić? Ten post edytował Krisu 5.07.2008, 17:48:56 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Proszę o dodanie tytułu tematu, sam tag to nie tytuł.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
A po co się tak męczysz nie łatwiej tak:
Gdzie: wordwrap() - pozwala na formatowanie tekstu 100 - maksymalna dlugość znaków w lini <br /> - sposób w jaki łamiesz tekst 1 - bezwzględnie łamie ciąg znaków jeżeli przekroczy on 100 "xxx..." - to tekst Poprawiłem błędy w kodzie ![]() Ten post edytował Szunaj85 5.07.2008, 18:57:58 -------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
Wyliczanie szerokości tekstu, jest związane z tym, że wszystkie operacje wykonuję na obrazie. Najpierw nakładam 1 linię, a potem w odpowiednim miejscu nakładam 2 linię tekstu, co niesie mniejsze prawdopodobieństwo popełnienia błędu.
Poza tym Twój skrypt nie działa mi za bardzo... do funkcji wordwrap nie trzeba mieś włączonej jakiejś biblioteki? Bo po mimo poprawnego kolorowania składni, wysypuje się kod. Mój błąd... nie poprawiłem w kodzie <? na <?php i dlatego wywaliło mi kod. Teraz dopiero widzę zasadę działania funkcji. Hmm w sumie to myślę, że dało by się ten problem załatwić w ten sposób, ale chciałbym zobaczyć, czy może ktoś jeszcze ma inne pomysły na ten temat. Teoretycznie pomysł byłby idealny, gdyby puścić pętle sprawdzającą szerokość każdej literki i po otrzymaniu wyniku 350 px zwracałaby ilość wykorzystanych znaków, wówczas tą zmienna podstawiałoby się do funkcji wordwrap. Co o tym myślicie, bo ja zastanawiam się, czy pętla jest optymalnym rozwiązaniem.? Zrobiłem to w taki sposób... działać działa, ale jest trochę mało wydajny... Może ktoś coś doradzi??
Ten post edytował Krisu 5.07.2008, 19:18:12 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie pisałeś, że to ma być tekst oparty o czcionki ttf. Teraz rozumiem o co Ci chodziło. Jednak czy jesteś pewien, że skrypt działa bo mnie wyskakuje błąd w 11 linijce twojego kodu
![]() Ten post edytował Szunaj85 5.07.2008, 21:10:14 -------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
Działa na 100%, a błąd polega na tym, że w katalogu engine/fonts nie masz czcionki verdany.
żeby wszystko działało musisz ją skopiować do bieżącego katalogu i podać jej nazwę. Ja zaś chciałbym bardziej zoptymalizować kod, ale nie wiem jak. Chodzi o to, by na poniższym obrazku nie ucinało tekstu, tylko przenosiło go do kolejnej linii. Tekst, który został naniesiony na obrazek... Cytat Uwolniłeś/aś swoich 99 jednostek i zaprzyjaźnionych1 jednostek. ![]() Ten post edytował Krisu 5.07.2008, 21:06:42 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chodzi o czcionkę ttf to skopiowałem ją na serwer i wpisałem odpowiednią ścieżkę. Więc chyba nie tu tkwi problem. Jednak domyślam się gdzie. Jeżeli tobie działa to widocznie wszystko jest ok.
-------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
Możliwe, że to wina konfiguracji serwera. Chciałbym dać Ci repa za pomoc, ale chciałbym, żeby jeszcze ktoś pomógł mi zoptymalizować ten kod.
Bo nie widzi mi się wykonywanie pętli 70 razy, jeśli literek jest ok 50... |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz pierwszy problem to przenieść tekst do nowej lini tak żeby Ci nie ucinało tekstu, a drugi problem to stworzyć miejsce na 2 linijki (lub więcej) tekstu. Nie wiem może przekroić obrazek w miejscu gdzie wyświetlasz tekst i sztucznie go wydłużać za pomocą skryptu PHP.
![]() Ten post edytował Szunaj85 5.07.2008, 21:30:12 -------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
No coś Ty, to już żaden problem
![]() Jeden if kod jest dłuższy niż 350 px, to jakaś tam zmienna = dodatkowe miejsce czyli ok 20px wolnego pola, a potem, przy tworzeniu obrazka zamiast dac gotowe wymiary dodajesz ta zmienna i do wszystkich rzeczy, które są pod wolnym polem, a sam tekst (a raczej drugą część) osadzasz w wolnym miejscu. Nie wiem, czy wyraziłem się jasno, ale dzięki za pomoc. Naprawdę mi pomogłeś ![]() Pozdrawiam. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
A właśnie to jest obrazek czy zrobiłeś to na tabelach?
Ten post edytował Szunaj85 5.07.2008, 21:37:02 -------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
To wszystko to jest jeden obrazek.
Cytat Temat: Village of Grimness zaatakował/a ANUSIAK Wysłana: 26.02.08 o 13:08:01 Godz. Napastnik Nikkodem z osady Village of Grimness [Pałkarz] [Oszczepnik] [Topornik] [Zwiadowca] [Paladyn] [Germański Rycerz] [Taran] [Katapulta] [Wódz] [Osadnik] [Bohater] Jednostki 0 0 4168 0 0 927 0 0 0 0 1 Straty 0 0 129 0 0 29 0 0 0 0 0 Jeńcy 0 0 81 0 0 18 0 0 0 0 0 Informacja Uwolniłeś/aś swoich 99 jednostek i zaprzyjaźnionych1 jednostek. Zdobycz 13439 12857 14015 55100 Obrońca wlatca moch z osady ANUSIAK [Falanga] [Miecznik] [Tropiciel] [Grom Teutatesa] [Jeździec Druidzki] [Haeduan] [Taran] [Trebusz] [Herszt] [Osadnicy] Jednostki 422 10 23 2 15 167 0 0 0 0 Straty 422 10 23 2 15 167 0 0 0 0 Kopiując taki tekst otrzymujesz właśnie obrazek. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:44 |