Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Zczytanie pliku tekstowego do tablic
axeld333
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 24.03.2007

Ostrzeżenie: (0%)
-----


Mecze sie z tym i nie wiem jak to zrobic.

mam plik tekstowy w postaci:

1;adam;33;54567678
2;basia;14;44556677
3;waldek;54;99898787
itd.

chcialbym aby php mi go powrzucal do kolejnych tablic czyli:

$numer[1]="1"; $imie[1]="adam"; $wiek[1]=33; $tel[1]="54567678";
$numer[2]="2"; $imie[2]="basia"; $wiek[2]=14; $tel[2]="44556677";
itd...

jak to zrobic? z gory dzieki.

Ten post edytował axeld333 17.04.2007, 08:51:38
Go to the top of the page
+Quote Post
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Straszliwa niechęć do manuala wystąpiła u ciebie. Ehh.
file" title="Zobacz w manualu PHP" target="_manual + explode" title="Zobacz w manualu PHP" target="_manual
może nawet fgetcsv" title="Zobacz w manualu PHP" target="_manual

pozdr.
Go to the top of the page
+Quote Post
axeld333
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 24.03.2007

Ostrzeżenie: (0%)
-----


Niby wszystko zrozumialem, ale mi nie dziala i nie wiem czemu.
Plik w postaci:

AGO;19990423;49,40;51,00;49,10;49,70;164435
AGO;19990426;49,50;49,80;49,00;49,00;90323
AGO;19990427;48,50;48,50;47,50;47,80;84823
AGO;19990428;47,50;47,50;46,00;46,20;51058
AGO;19990429;45,90;46,80;45,50;46,00;62820
AGO;19990430;45,90;46,70;45,90;46,40;51295

petla:

  1. <?php
  2. $plik = fopen("agora.txt","r");
  3. $odczytany = fread($plik, 1000000);
  4.  
  5. $dane = explode("rn",$odczytany);
  6.  
  7. foreach ($dane as $linijka) 
  8.  {
  9. echo $linijka."<br>";
  10. list($nazwa_spolki, $data, $otwarcie, $maksimum, $minimum, $zamkniecie, $volumin) = explode(";", $linijka);
  11.  }
  12.  
  13.  
  14. for ($i=1; $i<10; $i++)
  15. {
  16. echo "@".$nazwa_spolki[$i].$data[$i].$otwarcie[$i]."<br>";
  17. }
  18. ?>



petla foreach dobrze wyswietla nikijki z pliku, a petla u dolu juz nic nie wyswietla - tak jakby zmienne nie zaladowaly sie do tych tablic.
Dlaczego?
Go to the top of the page
+Quote Post
siemakuba
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Wszystko działa jak powinno ;)
Zobacz jak wygląda twoja pętla, i co dokładnie dzieje się w środku:
  1. <?php
  2. foreach ($dane as $linijka) 
  3. {
  4. list($nazwa_spolki, $data, $otwarcie, $maksimum, $minimum, $zamkniecie, $volumin) = explode(';', $linijka);
  5. }
  6. ?>
Za każdą iteracją pętli nadpisujesz wszystkie te zmienne nowymi danymi. Stąd, nie są one tablicami.
Jeżeli chcesz zbudować z tego wiele tablic, może spróbuj tak:
  1. <?php
  2. $nazwa_spolki = array();
  3. $data = array();
  4. foreach ($dane as $linijka) 
  5. {
  6. $tmp_array = explode(";", $linijka);
  7. $nazwa_spolki[] = $tmp_array[0];
  8. $data[] = $tmp_array[1];
  9. }
  10. ?>


pozdr.
Go to the top of the page
+Quote Post
axeld333
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 24.03.2007

Ostrzeżenie: (0%)
-----


dzieki - teraz dziala - po prostu nie zrozumialem tej instrukcji "list" - myslalem ze ona mi sama to zrobi.
ale jeszcze tylko jedno pytanie:
jak dowiedziec sie ile jest linijek tekstu?
Go to the top of the page
+Quote Post
siemakuba
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Kurcze, przechodzisz samego siebie :) Jak cię naprowadzić to łapiesz bez problemu w czym rzecz, ale masz jakąś wyraźną niechęć do poszukiwań :)

Dane z pliku masz w tablicy. Każdy element tablicy = jedna linia z pliku. Szukaj funkcji, która zwróci ci (policzy) ilość elementów w tablicy ;)

pozdr.
Go to the top of the page
+Quote Post
kriqs
post
Post #7





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 31.05.2006

Ostrzeżenie: (0%)
-----


a no list ci to zrobi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. <?php
  2. $dane = file('agora.txt');
  3.  
  4. foreach ($dane as $linijka) 
  5.  {
  6. echo $linijka."<br>";
  7. list($nazwa_spolki[], $data[], $otwarcie[], $maksimum[], $minimum[], $zamkniecie[], $volumin[]) = explode(";", $linijka);
  8.  }
  9.  
  10.  
  11. for ($i=0; $i<10; $i++)
  12. {
  13. echo "@".$nazwa_spolki[$i].$data[$i].$otwarcie[$i]."<br>";
  14. }
  15. ?>


powinno dzialac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

dziekuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 18:53