Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]pętla z warunkiem jak policzyć linijki.
Forum PHP.pl > Forum > Przedszkole
casperii
Panowie nie mogę poradzić sobie z poniższym kodem , otóż, w poniższym kodzie wyświetlam w pętli while wszystkie wartości z tabeli i wykonuje warunek , że jeżeli napotkano znak ":" to ma przenosić do nowej linii. Wszystko jest jak do tej pory ok, teraz jeśli wartość pobrana będzie zawierać powyżej 120 znaków lub napotka znak ":" tworzy kolejną linijke. Jak wówczas mam dodać kolejne 30 do zmiennej $dodaj ?

  1. while ($result = $query ->fetch_object()){
  2. $oi = 0;
  3. $cos = '';
  4. $input2 = str_split($result->field1);
  5. foreach($input2 as $k => $char){
  6. $cos .= $char;
  7.  
  8. if($oi >= 120 || $char === ':') {
  9. if($input2[$k+1] == ',') {
  10. $oi++;
  11. continue;
  12. }
  13. $cos .= PHP_EOL;
  14. $oi = 0;
  15. }
  16. $oi++;
  17. }
  18. $iledodac = $oi;
  19. $extra=(24*$iledodac);
  20. $Value1 = $cos;
  21.  
  22. imagefilledrectangle($ob, 0, 180+$dodaj, $w, 210+$dodaj+$extra, $tlo);
  23. imagettftext($ob, $font_size-2, 0, 185, 200+$dodaj, $text_color, $font, $Value1);
  24. imagettftext($ob, $font_size-2, 0, 980, 200+$dodaj, $text_color, $font, $result->value4);
  25. imagettftext($ob, $font_size-2, 0, 1120, 200+$dodaj, $text_color, $font, $result->value5);
  26. imagerectangle($ob,0,180+$dodaj,$w-1,210+$dodaj+$extra,$text_color);
  27. $dodaj +=30;
  28. $i +=1;
  29. }
  30. $dodaj++;
  31. $i++;


ma ktoś jakiś pomysł ? Ponawiam pytanie smile.gif
Pyton_000
Przecież już pisałeś o tym nieszczęsnym łamaniem dziwnych linii... Skleroza ?

PS. Jak tam Twój wypasiony autoloader. Czekam z niecierpliwością na nowe wypasione rozwiązanie haha.gif
casperii
@Pyton_000 wiem, że pisałem ale nie otrzymałem odpowiedzi ? Na dalsze moje pytanie :-P

  1. foreach($input2 as $k => $char){
  2. $cos .= $char;
  3.  
  4. if($oi >= 120 || $char === ':') {
  5. if($input2[$k+1] == ',') {
  6. $oi++;
  7. continue;
  8. }
  9. $cos .= PHP_EOL;
  10. $oi = 0;
  11. }
  12. $oi++;
  13. }


chodzi mi o to , by wiedzieć ile razy złamano linie , wtedy będę mógł sobie ją pomnożyć przez interesującą mnie liczbę, dzięki czemu powiększę sobie imagefilledrectangle.
Pyton_000
A jaki problem policzyć ile jest PHP_EOL ?
com
to jak dodajesz złamanie lini to zwiększaj licznik, proste jak budowa cepa i trzeba było użyć modulo zamiast takich dziwnych warunków tam smile.gif
casperii
zrobione smile.gif

  1. echo "Podziękował:-)";



Jeszcze jedno co mi nie daje spokoju to chce by mi przenosiło do nowej linii pełne słowa a nie w połowie ucięte tongue.gif
Wiem, tylko tyle , że trzeba by było użyć:

  1. $newtext = wordwrap($text, 8, "\n", false);



czy jest ok?

  1. if($input2[$k+1] == ',' || wordwrap($input2[$k+1], 60, "\n", false)) {
  2. $oi++;
  3. continue;
  4. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.