Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pliki CSV problem z tabelą [PHP]
Forum PHP.pl > Forum > PHP
kamillo1888
Witam mam problem z plikiem CSV.
Do odczytu napisałem sobie skrypcik:
  1. <?php 
  2. $openfile = "test.CSV"; 
  3. $handle = fopen ($openfile,"r"); 
  4. while ($data = fgetcsv ($handle, 10000, ";")) 
  5. {
  6. $num = count ($data); 
  7. echo $data[5] . "<br>n"; 
  8.  
  9. } 
  10. fclose ($handle); 
  11. ?>


Plik test.CSV zawiera:
  1. Data faktury;Nr faktury;Specyfikacja do rozchodu;Nr listu przewozowego;Towar;Nazwa;Nr Seryjny;Rękojmia (mies.);Data upływu rękojmi;Miejsce świadczenia
  2. 2007-06-25;WROC\77450;WZ/134383;8403312526;SPOEOKEZG150;Patch cord UTP kat. 5e 0.5m szary;8716309020534;12;2008-06-25;INCOM MOKRONOSKA
  3. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVLPB00080;ŁADOWARKA EVER E-050 2x 1800AA +2x800 AAA;5907683600259;24;2009-06-25;SERWIS  PRODUCENTA;
  4. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVBAB00400;AKUMULATOR EVER AA 2700 mAh NiMH opak 2 szt.;5907683600211;12;2008-06-25;SERWIS  PRODUCENTA
  5. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVBAB00400;AKUMULATOR EVER AA 2700 mAh NiMH opak 2 szt.;5907683600211;12;2008-06-25;SERWIS  PRODUCENTA
  6. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVBAB00020;AKUMULATOR EVER AAA 1000 mAh NiMH 2 szt.;5907683600204;12;2008-06-25;SERWIS  PRODUCENTA
  7. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVBAB00020;AKUMULATOR EVER AAA 1000 mAh NiMH 2 szt.;5907683600204;12;2008-06-25;SERWIS  PRODUCENTA
  8. 2007-06-25;WROC\77450;WZ/134383;8403312526;PAGRFLX5PDK0;Pen Drive 2 GB USB 2.0 GOODRAM/KABEL USB/SMYCZ;2222825;60;2012-06-25;INCOM MOKRONOSKA
  9. 2007-06-25;WROC\77450;WZ/134383;8403312526;SPOEOKBZK400;PRZEŁĄCZNIK KVM 4/1 RĘCZNY PS (VKMS4);2254000;12;2008-06-25;INCOM MOKRONOSKA" title="Zobacz w manualu PHP" target="_manual">SPECYFIKACJA
  10. Data faktury;Nr faktury;Specyfikacja do rozchodu;Nr listu przewozowego;Towar;Nazwa;Nr Seryjny;Rękojmia (mies.);Data upływu rękojmi;Miejsce świadczenia
  11. 2007-06-25;WROC\77450;WZ/134383;8403312526;SPOEOKEZG150;Patch cord UTP kat. 5e 0.5m szary;8716309020534;12;2008-06-25;INCOM MOKRONOSKA
  12. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVLPB00080;ŁADOWARKA EVER E-050 2x 1800AA +2x800 AAA;5907683600259;24;2009-06-25;SERWIS  PRODUCENTA;
  13. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVBAB00400;AKUMULATOR EVER AA 2700 mAh NiMH opak 2 szt.;5907683600211;12;2008-06-25;SERWIS  PRODUCENTA
  14. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVBAB00400;AKUMULATOR EVER AA 2700 mAh NiMH opak 2 szt.;5907683600211;12;2008-06-25;SERWIS  PRODUCENTA
  15. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVBAB00020;AKUMULATOR EVER AAA 1000 mAh NiMH 2 szt.;5907683600204;12;2008-06-25;SERWIS  PRODUCENTA
  16. 2007-06-25;WROC\77450;WZ/134383;8403312526;UPEVBAB00020;AKUMULATOR EVER AAA 1000 mAh NiMH 2 szt.;5907683600204;12;2008-06-25;SERWIS  PRODUCENTA
  17. 2007-06-25;WROC\77450;WZ/134383;8403312526;PAGRFLX5PDK0;Pen Drive 2 GB USB 2.0 GOODRAM/KABEL USB/SMYCZ;2222825;60;2012-06-25;INCOM MOKRONOSKA
  18. 2007-06-25;WROC\77450;WZ/134383;8403312526;SPOEOKBZK400;PRZEŁĄCZNIK KVM 4/1 RĘCZNY PS (VKMS4);2254000;12;2008-06-25;INCOM MOKRONOSKA


Problem pojawia się przy użyciu mojego skryptu - wtedy to wyświetla mi Kolumnę :/ której nie umiem podzielić w żaden sposób na szególne części. Czyli dla: echo $data[5] . wyświetla mi:
<span style="font-weight: bold;">
  1. Nazwa
  2. Patch cord UTP kat. 5e 0.5m szary
  3. ŁADOWARKA EVER E-050 2x 1800AA +2x800 AAA
  4. AKUMULATOR EVER AA 2700 mAh NiMH opak 2 szt.
  5. AKUMULATOR EVER AA 2700 mAh NiMH opak 2 szt.
  6. AKUMULATOR EVER AAA 1000 mAh NiMH 2 szt.
  7. AKUMULATOR EVER AAA 1000 mAh NiMH 2 szt.
  8. Pen Drive 2 GB USB 2.0 GOODRAM/KABEL USB/SMYCZ
  9. PRZEŁĽCZNIK KVM 4/1 RĘCZNY PS (VKMS4)
  10. PRZEŁĽCZNIK KVM 4/1 RĘCZNY PS (VKMS4)
  11. Patch cord UTP kat. 5e 0.5m szary
  12. Patch cord UTP kat. 5e 0.5m szary
  13. Patch cord UTP kat. 5e 0.5m szary
  14. Patch cord UTP kat. 5e 0.5m szary
  15. Torba do notebooka - max. 15,4" ART AB-33
  16. Patch cord UTP kat. 5e 0.5m szary
  17. Patch cord UTP kat. 5e 0.5m szary
  18. Patch cord UTP kat. 5e 0.5m szary
  19. Patch cord UTP kat. 5e 0.5m szary
  20. UPS EVER ECO 1200 PRO CDS,ZS,DPC,TEL (sinus) RACK 2 U
  21. Patch cord UTP kat. 5e 0.5m szary
  22. Papier biurowy Polspeed A4 - Karton 5xryza (2500 arkuszy)
  23. LANTECH LES 0008 Mini Switch 8-portowy
  24. LANTECH LES 0008 Mini Switch 8-portowy


Jak zrobić dwuwymiarową tablicę tak aby np. pierwsza linia była:
$data[0] a pierwszy wyraz pierwszej linii $data[0][0] questionmark.gif
abc667
no tak że $data[0] i $data[0][0] jednocześnie to nie może być
  1. <?php 
  2. $openfile = 'test.CSV'; 
  3. $handle = fopen ($openfile,'r'); 
  4. $arr = array();
  5. $i=0;
  6. while ($data = fgetcsv ($handle, 10000, ';')) 
  7. {
  8. $arr[$i] = explode(' ', $data[5]);
  9. $arr[$i]['all'] = $data[5]; 
  10. $i++;
  11.  
  12. } 
  13. fclose ($handle); 
  14. ?>

i teraz w $arr[$i]['all'] masz cały tekst a w $arr[$i][0], $arr[i][1] ... masz kolejne wyrazy

tak w ogóle chyba pomyliłeś działy dry.gif
php programmer
Ja zawsze używam znaku | jako seperatora i nigdy nie ma problemu,
popularny znak ; to kiepski pomysł na użycie go jako seperatora,
bo jest dość często używany w zwykłych tekstach
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.