Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pętla for
Forum PHP.pl > Forum > Przedszkole
Krisu
Mam taki kod
  1. <?php
  2. $image2 = imagecreatefromgif(stala_url . $nat1 . '2.gif');
  3. imagecopymerge($image, $image2, $begin + $end_eja + $weja0['w'] + $end_eja + $end_eja + $ua1, $hn1, 0, 0, 16, 16, 100);
  4.  
  5. $image2 = imagecreatefromgif(stala_url . $nat1 . '3.gif');
  6. imagecopymerge($image, $image2, $begin + $end_eja + $weja0['w'] + $end_eja + $end_eja + $weja1['w'] + $end_eja + $end_eja + $ua2, $hn1, 0, 0, 16, 16, 100);
  7. ?>

Szybko można dojść do wniosku, że można ten kod zapętlić, zwłaszcza, gdy występują kolejne przykłady. Dlatego postanowiłem zapętlić 8 z nich:

  1. <?php
  2. $a = 0;
  3.  
  4. for ($i = 0; $i <= 7; $i++) {
  5.  
  6. $a += ${'weja'.$i}['w'] + 2 * $end_eja;
  7.  
  8. $image2 = imagecreatefromgif(stala_url . $nat1 . $i + 2 .'.gif');
  9. imagecopymerge($image, $image2, $begin + $end_eja + $a + $ua . $i + 1, $hn1, 0, 0, 16, 16, 100);
  10.  
  11. }
  12. ?>
Ale napotkałem taki błąd.
Cytat
Warning: imagecreatefromgif(2.gif) [function.imagecreatefromgif]: failed to open stream: No such file or directory
Co może być przyczyną?

Stała jest tak zdefiniowana
  1. <?php
  2. define('stala_url', "images/");
  3. ?>
i znajduje sie w oddzielnym pliku, ktory pozniej jest includowany. Reszta zmiennych jest w tym samym pliku.
piotrekkr
Nie ma takiego pliku 2.gif w tym katalogu co skrypt...
Krisu
Cytat(piotrekkr @ 2.05.2008, 22:46:28 ) *
Nie ma takiego pliku 2.gif w tym katalogu co skrypt...
Spóźniłem się trochę z edycją posta.

Tak wiem, że nie ma, ale właśnie ścieżką dostępu jest stała.
piotrekkr
Użyj:

  1. <?php
  2. var_dump(stala_url . $nat1 . $i + 2 .'.gif');
  3. ?>


w pętli to ci wyswietli to co dostaje finkcja imagecreatefromgif.
Krisu
  1. <?php
  2. string(5) "2.gif"
  3. Warning: imagecopymerge(): supplied argument is not a valid Image resource
  4. ?>
Oto wynik :]
piotrekkr
ee troche nie w tym miejscu uzyles tongue.gif
chodzilo mi ze przed instrujkcja $image2 ....:
  1. <?php
  2. for ($i = 0; $i <= 7; $i++) {
  3.  
  4. $a += ${'weja'.$i}['w'] + 2 * $end_eja;
  5. var_dump(stala_url . $nat1 . $i + 2 .'.gif');
  6. $image2 = imagecreatefromgif(stala_url . $nat1 . $i + 2 .'.gif');
  7. imagecopymerge($image, $image2, $begin + $end_eja + $a + $ua . $i + 1, $hn1, 0, 0, 16, 16, 100);
  8.  
  9. }
  10. ?>

ale i tak pokazuje to ze nie wstawia pelnej sciezki pliku... wiec w parametrach musi byc blad;
Krisu
To w takim razie to jest wynik string(6) "10.gif"
piotrekkr
No czyli widzisz ze stala nie jeste zdefiniowana bo inaczej by ja wyswietlilo string(13) "images/10.gif" a nie string(6) "10.gif". Moze masz cos nie tak z includem albo nie definiujesz stalej dobrze
Krisu
Cytat(piotrekkr @ 2.05.2008, 23:10:36 ) *
No czyli widzisz ze stala nie jeste zdefiniowana bo inaczej by ja wyswietlilo string(13) "images/10.gif" a nie string(6) "10.gif". Moze masz cos nie tak z includem albo nie definiujesz stalej dobrze
Niestety, ale jak zrobię tak,
  1. <?php
  2. var_dump('images/' . $nat1 . 2 + $i .'.gif');
  3. ?>
to wyswiela string(6) "10.gif"
piotrekkr
Hmm a zrob tak:
  1. <?php
  2. for ($i = 0; $i <= 7; $i++) {
  3.  
  4. $a += ${'weja'.$i}['w'] + 2 * $end_eja;
  5. var_dump(stala_url, $nat1);
  6. $image2 = imagecreatefromgif(stala_url . $nat1 . $i + 2 .'.gif');
  7. imagecopymerge($image, $image2, $begin + $end_eja + $a + $ua . $i + 1, $hn1, 0, 0, 16, 16, 100);
  8.  
  9. }
  10. ?>

ale widzac po twoim wczesniejszym poscie blad jest chyba w $nat1 ale nie dam glowy. Napisz co wyswietla to co ci napialem.
Krisu
Wiem gdzie jest błąd związany z var_dump.

Otóż powinno być nie $i + 2, lecz ($i + 2). Zaraz sprawdze czy się nie mylę.

  1. <?php
  2. for ($i = 0; $i <= 7; $i++) {
  3.  
  4. $a += ${'weja'.$i}['w'] + 2 * $end_eja;
  5.  
  6. $image2 = imagecreatefromgif(stala_url . $nat1 . ($i + 2) .'.gif');
  7. imagecopymerge($image, $image2, $begin + $end_eja + $a + $ua . ($i + 1), $hn1, 0, 0, 16, 16, 100);
  8.  
  9. }
  10. ?>


I już wszystko prawie działa ale nie nanosi 6 obrazka smile.gif Chyba już sobie z tym poradzę. Mimo wszystko dzięki za pomoc.
piotrekkr
Heh chyba masz racje biggrin.gif nie zauwazylem tego. Chyba za duzo siedze przed kompem smile.gif Powodzenia
Krisu
Dzięki wielkie smile.gif
Oto ostateczny wynik, zamieszczam dla tych co może kiedyś będą mieli podobny problem.

  1. <?php
  2. $a = 0;
  3.  
  4. for ($i = 0; $i <= 7; $i++) {
  5.  
  6. $a += ${'weja'.$i}['w'] + 2 * $end_eja;
  7.  
  8. $image2 = imagecreatefromgif(stala_url . $nat1 . ($i + 2) .'.gif');
  9. imagecopymerge($image, $image2, $begin + $end_eja + $a + ${'ua'.($i + 1)}, $hn1, 0, 0, 16, 16, 100);
  10.  
  11. }
  12. ?>
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.