Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Odczytanie danych z pliku i pokazanie ich w tabeli
998
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.06.2007

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


Szukałem tego na forum ale nigdzie nie mogę znaleźć dobrego rozwiązania.

Mam utworzony plik baza.txt. Jest w nim:

Huta Pokój SA|41-709 Ruda Śląska, Śląskie, Niedurnego 79|www.hutapokoj.eu
ADZ sp. z o.o.|05-220 Zielonka, Mazowieckie, Bankowa 43|www.adz.com.pl

Jak odczytać dane z tego pliku i pokazać wynik w tabeli z wyróżnieniem:

Nazwa firmy,
Kod pocztowy,
Województwo,
Ulica,
Adres WWW?

Ten post edytował 998 30.06.2007, 13:03:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
kornel-php
post
Post #2





Grupa: Zarejestrowani
Postów: 210
Pomógł: 20
Dołączył: 7.07.2006
Skąd: Krotoszyn

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


fgets" title="Zobacz w manualu PHP" target="_manual, explode" title="Zobacz w manualu PHP" target="_manual


--------------------
:)
Go to the top of the page
+Quote Post
998
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.06.2007

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


Cytat(kornel-php @ 30.06.2007, 14:07:34 ) *


Kombinowałem z tymi funkcjami ale nic mi nie wychodziło. Może jakiś kod tu wstawicie. Proszę o pomoc.
Go to the top of the page
+Quote Post
kornel-php
post
Post #4





Grupa: Zarejestrowani
Postów: 210
Pomógł: 20
Dołączył: 7.07.2006
Skąd: Krotoszyn

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


  1. <?php
  2. // nie napiszę Ci całego kodu, tylko delikatnie zobrazuję
  3.  
  4. $plik = 'plik.txt'
  5.  
  6. $otwarty = fopen($plik);
  7. $dane = fgets($otwarty);
  8.  
  9. $talica = explode('|', $dane);
  10.  
  11. //twoje dane są w elementach tablicy - $tablica[0], $tablica[1],...
  12. ?>


--------------------
:)
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #5





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(998 @ 30.06.2007, 12:24:38 ) *
Kombinowałem z tymi funkcjami ale nic mi nie wychodziło. Może jakiś kod tu wstawicie. Proszę o pomoc.

Kod powinieneś wstawić Ty, my go może pomóc poprawić...

Ja bym robił to tak:
- file" title="Zobacz w manualu PHP" target="_manual - odczyt pliku do tablicy,
- foreach" title="Zobacz w manualu PHP" target="_manual - przebieg po elementach tablicy,
- list" title="Zobacz w manualu PHP" target="_manual, explode" title="Zobacz w manualu PHP" target="_manual - rozdzielenie pól według znaku "|" (i przypisanie ich do odpowiednich zmiennych),
- tworzenie wierszy tabeli.


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
Darti
post
Post #6





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


no i jeszcze substr" title="Zobacz w manualu PHP" target="_manual albo preg_match" title="Zobacz w manualu PHP" target="_manual do kodu pocztowego


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kornel-php
post
Post #7





Grupa: Zarejestrowani
Postów: 210
Pomógł: 20
Dołączył: 7.07.2006
Skąd: Krotoszyn

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


Cytat(Darti @ 30.06.2007, 14:39:25 ) *


Niekoniecznie, można równie dobrze explodować 'po przecinkach', ale to już kwestia upodobań autora kodu winksmiley.jpg


--------------------
:)
Go to the top of the page
+Quote Post
998
post
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.06.2007

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


Cytat(kornel-php @ 30.06.2007, 14:33:30 ) *
  1. <?php
  2. // nie napiszę Ci całego kodu, tylko delikatnie zobrazuję
  3.  
  4. $plik = 'plik.txt'
  5.  
  6. $otwarty = fopen($plik);
  7. $dane = fgets($otwarty);
  8.  
  9. $talica = explode('|', $dane);
  10.  
  11. //twoje dane są w elementach tablicy - $tablica[0], $tablica[1],...
  12. ?>




Zrobiłem coś takiego:

  1. <html>
  2. <body>
  3.  
  4. <table>
  5. <tr>
  6.  <td><b>Nazwa firmy</b></td>
  7.  <td><b>Kod pocztowy</b></td>
  8.  <td><b>Województwo</b></td>
  9.  <td><b>Ulica</b></td>
  10.  <td><b>Adres WWW</b></td>
  11. </tr>
  12.  
  13.  
  14. <?php
  15.  
  16. $plik = baza.txt;
  17.  
  18. $otwarty = fopen("baza.txt", "r");
  19. $dane = fgets($otwarty);
  20.  
  21. $tablica = explode('|', $dane);
  22.  
  23. ?>
  24.  
  25. <tr>
  26. <td><?php
  27.  print $tablica[0];
  28.  ?></td>
  29.  
  30.  <td><?php
  31.  print $tablica[1];
  32.  ?></td>
  33.  
  34.  <td><?php
  35.  print $tablica[2];
  36.  ?></td>
  37.  
  38.  <td><?php
  39.  print $tablica[3];
  40.  ?></td>
  41.  
  42.  <td><?php
  43.  print $tablica[4];
  44.  ?></td>
  45. </tr>
  46.  
  47. </table>
  48. </body>
  49. </html>


Wyświetla mi się tylko pierwsza linia. A jak wyświetlić kolejną linię?
Go to the top of the page
+Quote Post
UDAT
post
Post #9





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Odczytywać w pętli fgets" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
ChowiX
post
Post #10





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 15.12.2006

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


Jak Ci ma odczytać
  1. <?php
  2. print $tablica[4];
  3. ?>

jeżeli
  1. <?php
  2.  
  3. $plik = baza.txt;
  4.  
  5. $otwarty = fopen("baza.txt", "r");
  6. $dane = fgets($otwarty);
  7.  
  8. $tablica = explode('|', $dane);
  9.  
  10. ?>
nie masz tablica[1] ?

Wg mnie ale niezbyt sie znam powinno byc
  1. <?php
  2.  
  3. $plik = baza.txt;
  4.  
  5. $otwarty = fopen("baza.txt", "r");
  6. $dane = fgets($otwarty);
  7.  
  8. $tablica = explode('|', $dane);
  9. $tablica[1] = explode('|', $dane);
  10. $tablica[2] = explode('|', $dane);
  11. $tablica[3] = explode('|', $dane);
  12.  
  13. ?>

tylko nie wiem jaka wartość ma być do $tablica[1] [2] [3]
Go to the top of the page
+Quote Post
998
post
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.06.2007

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


Cytat(UDAT @ 30.06.2007, 15:10:26 ) *

Można wiedzieć jak to zrobić bo kompletnie nie mam pojęcia?
Go to the top of the page
+Quote Post
Darti
post
Post #12





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Cytat(kornel-php @ 30.06.2007, 12:42:24 ) *
Niekoniecznie, można równie dobrze explodować 'po przecinkach', ale to już kwestia upodobań autora kodu winksmiley.jpg


Między kodem a miastem nie ma przecinka


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
998
post
Post #13





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.06.2007

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


Ponawiam pytanie jak odczytać dane z drugiej linii??
Go to the top of the page
+Quote Post
kornel-php
post
Post #14





Grupa: Zarejestrowani
Postów: 210
Pomógł: 20
Dołączył: 7.07.2006
Skąd: Krotoszyn

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


Cytat(Darti @ 30.06.2007, 16:28:26 ) *
Między kodem a miastem nie ma przecinka


To można explodować to dodatkowo w miejscu spacji, czepiasz się winksmiley.jpg

Ten post edytował kornel-php 30.06.2007, 15:39:11


--------------------
:)
Go to the top of the page
+Quote Post
Darti
post
Post #15





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


  1. <?php
  2. function trim_value(&$value)
  3. {
  4. $value = trim($value);
  5. }
  6.  
  7. $wej = file('baza.txt');
  8.  
  9. $wyj = "<table>
  10. <tr>
  11.  <td><b>Nazwa firmy</b></td>
  12.  <td><b>Kod pocztowy</b></td>
  13.  <td><b>Województwo</b></td>
  14.  <td><b>Ulica</b></td>
  15.  <td><b>Adres WWW</b></td>
  16. </tr>n";
  17.  
  18. foreach ($wej as $i => $dane){
  19.  
  20. $dane = trim($dane); // usuwamy znaki konca wiersza
  21. list($nazwa,$inne,$www) = explode('|',$dane);
  22. $kod_pocztowy = substr($inne,0,6);
  23. $inne = explode(',',substr($inne,7));
  24. array_walk($inne,'trim_value');
  25. list($miasto,$wojewodztwo,$ulica_cala) = $inne;
  26.  
  27. $wyj .="<tr>n";
  28. $wyj .= "<td><b>$nazwa</b></td>n";
  29. $wyj .="<td><b>$kod_pocztowy</b></td>n";
  30. $wyj .="<td><b>$wojewodztwo</b></td>n";
  31. $wyj .="<td><b>$ulica_cala</b></td>n";
  32. $wyj .="<td><b><a href="http://$www">$www</a></b></td>n";
  33. $wyj .="</tr>n";
  34. }
  35. $wyj .="</table>n";
  36.  
  37. echo $wyj;
  38. ?>


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
998
post
Post #16





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.06.2007

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


Cytat(kornel-php @ 30.06.2007, 16:38:54 ) *
To można explodować to dodatkowo w miejscu spacji, czepiasz się winksmiley.jpg


Widze Panowie że się tu kłócicie a chyba nie na tym rzecz polega, tylko na pomocy.
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #17





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(998 @ 30.06.2007, 14:37:26 ) *
Ponawiam pytanie jak odczytać dane z drugiej linii??
Zajrzyj do dokumentacji PHP: fgets" title="Zobacz w manualu PHP" target="_manual - pierwszy przykład...
Dostałeś już linka, ale mam wrażenie, że jesteś strasznie leniwy i czekasz, aż ktoś to napisze za Ciebie. Problem polega na tym, że to już zostało napisane (w dokumentacji) smile.gif.


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
Darti
post
Post #18





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Cytat(998 @ 30.06.2007, 14:51:52 ) *
Widze Panowie że się tu kłócicie a chyba nie na tym rzecz polega, tylko na pomocy.


No przecież dostałeś działający, dobry kod. Zastosuj go i masz problem rozwiązany

Ten post edytował Darti 30.06.2007, 16:11:04


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
tomsi
post
Post #19





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Moglbys wytlumaczyc co znacza poszczegolne linie kodu? tak dokladnie

Ten post edytował tomsi 30.06.2007, 22:58:05


--------------------
Jeśli Ci pomogłem kliknij "Pomógł"
Jeśli Ty mi pomogłeś kliknę "Pomógł"
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #20





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Cytat(tomsi @ 30.06.2007, 21:56:54 ) *
Moglbys wytlumaczyc co znacza poszczegolne linie kodu? tak dokladnie
Tak dokładnie, to opisane jest w dokumentacji (zaglądałeś tam? Bo chyba raczej nie):
- trim" title="Zobacz w manualu PHP" target="_manual,
- file" title="Zobacz w manualu PHP" target="_manual,
- foreach" title="Zobacz w manualu PHP" target="_manual,
- list" title="Zobacz w manualu PHP" target="_manual,
- explode" title="Zobacz w manualu PHP" target="_manual,
- substr" title="Zobacz w manualu PHP" target="_manual,
- array_walk" title="Zobacz w manualu PHP" target="_manual,
- echo" title="Zobacz w manualu PHP" target="_manual.

Będąc leniwym, niczego się nie nauczysz, a tym bardziej programowania.
Z dokumentacji tez trzeba umieć korzystać - im wcześniej się nauczysz, tym lepiej dla Ciebie. tomsi~powyżej jest działający kod, przeanalizuj go w oparciu o powyższe linki.
Jak nie będziesz czegoś rozumiał - pytaj, na pewno odpowiedź dostaniesz smile.gif.

Ten post edytował JaRoPHP 1.07.2007, 08:00:07


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 14:55