![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 1.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chce podzielic zdanie na dwie linijki, zalozmy ze jedna litera to 13px, maksymalna dlugosc to 590px, zdanie zlozone z 12 wyrazow lacznie zajmuje szerokosc 940px. Trzy petle: petla1 -> wykona sie tyle razy ile razy zostanie podzielone zdanie 940px / 590px = 2, pętla2 -> wykona sie tyle razy ile jest slow 12 pętla3 -> wykona sie dopoki laczna suma pikseli nie bedzie wieksza od 590, jezeli suma jest wieksza, zatrzymaj petle, wykonaj petle2 jeszcze raz i kontynuuj petle3 od zatrzymanego wyrazu... No to tyle jesli chodzi o opis ;] Wyklepalem cos takiego:
Teoretycznie dziala, ale po wykonaniu wywali mi blad: Fatal error: Maximum execution time of 30 seconds exceeded in (...) on line 48 I nie mam pojecia dla czego ;] |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Się petla nie konczy to przekraczasz czas wykonywania skryptu.
Teoretycznie ta podwójna pętla: while($nr_slowa < $wyrazow) { echo '</br>'; $px = 0; do { echo ''.$slowa[$nr_slowa].' '; $px = (strlen($slowa[$nr_slowa]) * $litera) + $px; $nr_slowa++; } while($px < $maxpx); } może się nigdy nie skonczyć. Masz warunek: while($nr_slowa < $wyrazow) a $nr_slowa zwiekszasz dopiero w tej wewnętrznej pętli. Może się okazać, że do wewnętrznej pętli już nie będzie wchodził, wówczas $nr_slowa się nie będzie zwiększać i ciągle będzie się kręcił w pętli na warunku $nr_slowa < $wyrazow |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 16:40 |