Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kłopot z pobraniem zawartości plików poprzez pętle
Forum PHP.pl > Forum > PHP
wolguy
Mam skrypt:

  1. <?php
  2.  
  3. $txt = &#092;".txt\";
  4.  
  5.  $plik = array(
  6.  1 => &#092;"001$txt\", // nazwy plików
  7.  2 => &#092;"002$txt\",
  8.  3 => &#092;"003$txt\",
  9.  4 => &#092;"004$txt\",
  10.  5 => &#092;"005$txt\",
  11. );
  12.  
  13.  
  14. for($i=1; $i<6; $i++)
  15.  {
  16.  $wartosc = array(
  17.  $plik[$i] => file_get_contents(&#092;"skrypty/liczniki/$plik[$i]\")
  18. );
  19.  }
  20.  
  21.  echo(&#092;"$wartosc[2]\");
  22. ?>


w zmiennej $plik zdefiniowane są nazwy plików.
Niżej mam pętlę for, ma ona za zadanie automatycznie otczytać zawartość plików i przypisać ją do zmiennych $wartosc[x].
A na dole to echo jest tylko po to, żeby sprawdzić czy działa tongue.gif

Ktoś pomoże? Bardzo proszę!
dr_bonzo
Popraw:
  1. <?php
  2.  
  3.        1 => '001' . $txt, // nazwy plików
  4.       // ....
  5. $wartosc = array();
  6.       for($i=1; $i<6; $i++)
  7.        {
  8.            $wartosc[ $plik[ $i ] ] = file_get_contents( 'skrypty/liczniki/' . $plik[ $i ] );
  9.        }
  10.       //. ...
  11.        echo( $wartosc[ 2 ]); 
  12. ?>

czemu zle?
  1. <?php
  2. for($i=1; $i<6; $i++)
  3.  {
  4.  $wartosc = array( $plik[$i] => file_get_contents(&#092;"skrypty/liczniki/$plik[$i]\") );
  5. // za kazdym razem zerojesz $wartosc tworzac nowa jednoelementowa tablice indeksow
  6. na nazwami plikow
  7.  }
  8.  
  9.  echo(&#092;"$wartosc[2]\");
  10. // ta wartos cnie istnieje:
  11. // 1. indexy to ni liczby tylko nazwy plikow
  12. // 2. jedynym indexem bedzie ten ostatni: dla $i == 6
  13.  
  14. ?>
wolguy
No więc:
  1. <?php
  2.  
  3. $txt = &#092;".txt\";
  4.  
  5.  $plik = array(
  6.  1 => &#092;"001$txt\", // nazwy plików
  7.  2 => &#092;"002$txt\",
  8.  3 => &#092;"003$txt\",
  9.  4 => &#092;"004$txt\",
  10.  5 => &#092;"005$txt\",
  11. );
  12.  
  13.  
  14. $wartosc = array();
  15.  
  16. for($i=1; $i<6; $i++)
  17.  {
  18.  $wartosc[$plik[$i]] = file_get_contents(&#092;"skrypty/liczniki/$plik[$i]\");
  19.  }
  20.  
  21.  
  22.  echo(&#092;"$wartosc[2]\"); 
  23.  
  24. ?>

dalej nie działa :-(

Pokazuje błąd: Notice: Undefined index: 2 in C:\Xitami\webpages\gc_new\top10.php on line 22
rogrog
zrób po prostu $wartosc[] i wtedy będziesz miał indeksy po kolei od 0
wolguy
gdzie dać $wartosc[] questionmark.gif wsadzić do skrypty, byle by była?
kszychu
Cytat(wolguy @ 2005-03-07 10:56:47)
gdzie dać $wartosc[] questionmark.gif wsadzić do skrypty, byle by była?

  1. <?php
  2. $txt = &#092;".txt\";
  3.  
  4.  $plik = array(
  5.  1 => &#092;"001$txt\", // nazwy plików
  6.  2 => &#092;"002$txt\",
  7.  3 => &#092;"003$txt\",
  8.  4 => &#092;"004$txt\",
  9.  5 => &#092;"005$txt\",
  10. );
  11.  
  12.  
  13. $wartosc = array();
  14.  
  15. for($i=1; $i<6; $i++)
  16.  {
  17.  $wartosc[] = file_get_contents(&#092;"skrypty/liczniki/$plik[$i]\"); // tutaj
  18.  }
  19.  
  20.  
  21.  echo(&#092;"$wartosc[2]\");
  22. ?>


A w ogóle to kod jest strasznie nieoptymalny. Oto jak ja bym to zrobił:
  1. <?php
  2. $txt = &#092;".txt\"; // nie wiem, po co Ci to, ale zakładam, że tak ma być
  3. // zakładam też, że tej tablicy nie można wygenerować automatycznie, tylko jest po
  4. ierana skądinąd, bo jeśli generujesz to można tak
  5.  
  6. /*
  7. $plik = array();
  8. for($i = 1; $i <= 5; $i++) {
  9.    $plik[$i] = sprintf(\"%03d\", $i);
  10. }
  11.  
  12. */
  13.  $plik = array(
  14.  1 => &#092;"001\", 
  15.  2 => &#092;"002\",
  16.  3 => &#092;"003\",
  17.  4 => &#092;"004\",
  18.  5 => &#092;"005\",
  19. );
  20.  
  21.  
  22. $wartosc = array();
  23.  
  24. foreach($plik as $nazwa_pliku) {
  25. $wartosc[] = file_get_contents(&#092;"skrypty/liczniki/{$nazwa_pliku}.{$txt}\");
  26. }
  27.  
  28. print_r($wartosc); // fajniejsze niż echo, nieprawdaż? :)
  29. ?>
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.