Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP] Sformatowanie zawartości pliku txt i wrzucenie przez php na stronę
Forum PHP.pl > Forum > Przedszkole
serwislap
Witam
Mam prośbę do fachowców
Mam plik TXT który generuje mi program który mam w kantorze walut
Oto zawartość:
  1. USD#1#3.2000#3.3400# #
  2. EUR#1#4.1500#4.2900# #
  3. GBP#1#5.1400#5.3200# #
  4. CHF#1#3.4500#3.5500# #
  5. NOK#1#0.5410#0.5730# #
  6. SEK#1#0.4600#0.4850# #
  7. DKK#1#0.5500#0.0000# #
  8. AUD#1#3.2000#0.0000# #
  9. CAD#1#3.1700#0.0000# #
  10. CZK#1#0.1650#0.1740# #
  11. LTL#1#1.1700#1.3500# #
  12. HUF#100#1.4000#1.5600# #
  13. HRK#1#0.5100#0.6300# #
  14. BGN#1#2.1200#2.3000# #
  15. RUB#1#0.1050#0.0000# #
  16. JPY#100#3.9000#0.0000# #
  17. TRY#1#1.7500#0.0000# #
  18. EUR#1#3.0000#4.2500#bilon#


Chciałbym wyciągnąć te dane i zaprezentować na swojej stronie www jak mogę to zrobić w php może ktoś pomógł by mi i napisał bądź też podpowiedział jak to zrobić. Troszkę w php projektowałem ale niestety nie aż tak zaawansowanie, potrafię odczytać zawartość pliku ale nie umiem go sformatować żeby ładnie wyglądało.
Oczywiście jeśli trzeba to pomocnemu zapłacę.
Pozdrawiam strasznie dziękuję za pomoc
droslaw
  1. //Wczytujesz plik do zmiennej.
  2. $content = file_get_contents($filePath);
  3. //Rozbijasz jego zawartość na linie:
  4. $lines = preg_split("/\r\n|\r|\n/", $content);
  5. $data = array();
  6. foreach($lines as $line)
  7. {
  8. //każdą linię rozbijasz jeszcze według znaków '#':
  9. $line = explode("#", $line);
  10. // wyciągamy nazwę waluty
  11. $name = array_shift($line);
  12. // pod kluczen który jest nazwą waluty będą jej dane
  13. $data[$name] = $line;
  14. }
  15. // w tablicy data masz teraz wszystkie dane
  16. var_dump($data);
BaN
Ewentualnie można to też zrobić odpowiednim wyrażeniem regularnym np.
  1. $content = file_get_contents($file_path);
  2. if(preg_match_all('/^([A-Z]+)#1#([0-9\.]+)#([0-9\.]+)#([^#]+)/m', $content, $matches, PREG_SET_ORDER)) {
  3. print_r($matches);
  4. }
serwislap
Witajcie
Dziękuję za podpowiedź, wczoraj siedziałem i szukałem w manualach na temat tych wyrażeń które są w skrypcie i trochę się bawiłem ale nie umiem sformatować tego potem z tablicy żeby było czytelne.
efekt mam taki :
  1. array(18) { ["USD"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "3.2000" [2]=> string(6) "3.3400" [3]=> string(5) " " [4]=> string(0) "" } ["EUR"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "3.0000" [2]=> string(6) "4.2500" [3]=> string(5) "bilon" [4]=> string(0) "" } ["GBP"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "5.1400" [2]=> string(6) "5.3200" [3]=> string(5) " " [4]=> string(0) "" } ["CHF"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "3.4500" [2]=> string(6) "3.5500" [3]=> string(5) " " [4]=> string(0) "" } ["NOK"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "0.5410" [2]=> string(6) "0.5730" [3]=> string(5) " " [4]=> string(0) "" } ["SEK"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "0.4600" [2]=> string(6) "0.4850" [3]=> string(5) " " [4]=> string(0) "" } ["DKK"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "0.5500" [2]=> string(6) "0.0000" [3]=> string(5) " " [4]=> string(0) "" } ["AUD"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "3.2000" [2]=> string(6) "0.0000" [3]=> string(5) " " [4]=> string(0) "" } ["CAD"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "3.1700" [2]=> string(6) "0.0000" [3]=> string(5) " " [4]=> string(0) "" } ["CZK"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "0.1650" [2]=> string(6) "0.1740" [3]=> string(5) " " [4]=> string(0) "" } ["LTL"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "1.1700" [2]=> string(6) "1.3500" [3]=> string(5) " " [4]=> string(0) "" } ["HUF"]=> array(5) { [0]=> string(3) "100" [1]=> string(6) "1.4000" [2]=> string(6) "1.5600" [3]=> string(5) " " [4]=> string(0) "" } ["HRK"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "0.5100" [2]=> string(6) "0.6300" [3]=> string(5) " " [4]=> string(0) "" } ["BGN"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "2.1200" [2]=> string(6) "2.3000" [3]=> string(5) " " [4]=> string(0) "" } ["RUB"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "0.1050" [2]=> string(6) "0.0000" [3]=> string(5) " " [4]=> string(0) "" } ["JPY"]=> array(5) { [0]=> string(3) "100" [1]=> string(6) "3.9000" [2]=> string(6) "0.0000" [3]=> string(5) " " [4]=> string(0) "" } ["TRY"]=> array(5) { [0]=> string(1) "1" [1]=> string(6) "1.7500" [2]=> string(6) "0.0000" [3]=> string(5) " " [4]=> string(0) "" } [""]=> array(0) { } }


A z rozbiciem już sobie nie mogę poradzić.
droslaw
Jeśli chcesz to teraz wyświetlić, to poprostu w pętli przechodzisz przez każdy element powstałej tablicy i wstawiasz odpowiednie jej elementy w odpowiednie tagi html. var_dump jest tylko po to, żeby mieć podgląd na strukturę tabeli, którą lepiej ogląda się przez 'pokaż źródło' albo w tagu <pre>.
bostaf
Na przykład, jeśli Twoja tablica jest w zmiennej o nazwie $data:
  1. <table cellspacing=1 border=1>
  2. <tr>
  3. <th>Waluta</th>
  4. <th>Indeks</th>
  5. <th>Kupno</th>
  6. <th>Sprzedaż</th>
  7. <th>Bilon</th>
  8. </tr>
  9. <?php
  10. foreach($data as $waluta => $dane) { ?>
  11. <tr>
  12. <td> <?php echo $waluta; ?> </td>
  13. <td> <?php echo $data[$waluta][0]; ?> </td>
  14. <td> <?php echo $data[$waluta][1]; ?> </td>
  15. <td> <?php echo $data[$waluta][2]; ?> </td>
  16. <td> <?php echo $data[$waluta][3] == 'bilon' ? 'tak' : 'nie'; ?> </td>
  17. </tr>
  18. <?php } ?>
  19. </table>
serwislap
Chłopaki wszystko działa.
Jesteście wielcy
Jak ktoś mieszka blisko Jaworzna to stawiam piwko smile.gif
Jeszcze raz dziękuję za pomoc i czegoś się nauczyłem.
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.