Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odczyt danych z pliku txt - po raz n'ty
Forum PHP.pl > Forum > Przedszkole
yellow_p
W php nie jestem zbyt mocny a ściągę zgubiłem i trochę się z tym męczę.

Problem jest następujący:

plik.txt o nazwie k_mpc.txt - a dane w nim zawarte są zapisane w następujący sposób:

pierwszy|drugi|trzeci|czwarty

jest tam kilkadziesiąt linijek danych.

I teraz byłbym bardzo wdzięczny za prościutki skrypcik, żeby to na stronie wyglądało tak:

pierwszy
drugi
trzeci
czwarty
...
i następna linijka danych

Docelowo dane mają być w tabelach ale z tabelkami to sobie już poradzę, tylko skrypcik odczytujący dane z pliku tekstowego i pokazujący je na stronie.
crash
  1. <?php
  2. if($f = fopen('k_mpc.txt', 'r'))
  3. {
  4.  $dane = fread($f, filesize('k_mpc.txt'));
  5.  $dane = explode('|', $dane);
  6.  fclose($f);
  7. }
  8. foreach($dane as $k => $va)
  9. {
  10.  echo $val.'<br/>';
  11. }
  12. ?>
yellow_p
Może jeszcze raz dokładnie bo to mi coś nie działa.

dane do pliku k_mpc.txt zapisywane takim skryptem:

  1. <?
  2. $data = date(&#092;"d.m.Y - H:i\");
  3. $pole1 = stripslashes(trim($_POST[&#092;"pole1\"]));
  4. $pole2 = stripslashes(trim($_POST[&#092;"pole2\"]));
  5.  
  6. if ($data <>&#092;"\" && $pole1<>\"\" && $pole2<>\"\") {
  7. $tresc=&#092;"$data|$pole1|$pole2|n\";
  8. $f=fopen(&#092;"dane/k_mpc.txt\", \"a\");
  9. fputs($f, $tresc);
  10. fclose($f);
  11. }
  12. ?>


i w pliku z danymi wygląda to tak:

Cytat
03.02.2005|yellow1|jeden|
03.02.2005|yellow2|dwa|
03.02.2005|yellow3|trzy|


A skrypt odczytujący dane:
  1. <?
  2.  
  3. if($f = fopen(&#092;"dane/k_mpc.txt\", \"r\"))
  4. {
  5.  $dane = fread($f, filesize (&#092;"dane/k_mpc.txt\"));
  6.  list ($pierwszy, $drugi, $trzeci) = explode(&#092;"|\", $dane);
  7. fclose($f);
  8. }
  9.  echo &#092;"$pierwszy - \";
  10.  echo &#092;"$drugi - \";
  11.  echo &#092;"$trzeci<br>\";
  12.  
  13. ?>


Na stronie pojawia się tylko pierwsza linijka z pliku dane. A co z resztą questionmark.gif

03.02.2005 - yellow1 - jeden

Interesuje mnie tylko taki sposób ponieważ dane mają być wyświetlane w różnych komórkach tabeli. Dlatego muszą być wyświetlane jako zmienne: $pierwszy, $drugi, $trzeci, itd.

Ale twój skrypt już bardzo mi pomógł.
crash
No to w takim razie to będzie:
  1. <?php
  2. if($dane = file('dane.txt'))
  3. {
  4. foreach($dane as $v => $wiersz)
  5. {
  6. $wiersz = explode('|', trim($wiersz));
  7.  
  8. print_r($wiersz);
  9. }
  10. }
  11. ?>

A plik dane.txt:
Kod
03.02.2005|yellow1|jeden
03.02.2005|yellow2|dwa
03.02.2005|yellow3|trzy
yellow_p
Teraz mam na stronie coś takiego:

Cytat
Array ( [0] => 03.02.2005 - 09:43 [1] => yellow1 [2] => pierwszy [3] => ) Array ( [0] => 03.02.2005 - 09:43 [1] => yellow2 [2] => drugi [3] => ) Array ( [0] => 03.02.2005 - 09:43 [1] => yellow3 [2] => trzeci [3] => ) Array ( [0] => 03.02.2005 - 09:44 [1] => yellow4 [2] => czwarty [3] => )


I co mam z tym dalej zrobić ?

A może da się poprawić mój skrypcik bo akurat miałem coś podobnego ? Tylko nigdzie noe mogę tego znaleźć.
NuLL
Nieesz co zrobić z tablicą
  1. echo \"<table>\";
  2. <?
  3. foreach($dane as $line){
  4. $row=explode(&#092;"|\",trim($line));
  5. echo &#092;"<tr><td>\".$row[0].\"</td><td>\".$row[1].\"</td><td>\".$row[2].\"</td></tr>\";
  6. }
  7. echo &#092;"</table>\";
  8. ?>
mabor
  1. <?php
  2.  
  3.  $dane = file('plik.txt');
  4. foreach($dane as $a => $l)
  5.  {
  6.  $tmp = explode('|', $l);
  7. foreach($tmp as $b => $v)
  8.  { echo $v.'</br>'; }
  9.  }
  10.  
  11. ?>
yellow_p
OK! Teraz już wiem biggrin.gif

Wykombinowałem coś takiego:
  1. <?
  2. if ($dane = file(&#092;"dane/k_mpc.txt\"));
  3. echo &#092;"<p class=text>\";
  4. echo &#092;"<table border=1 cellpadding=0>\";
  5. foreach($dane as $line){
  6. $row = explode(&#092;"|\",trim($line));
  7. echo &#092;"<tr>\";
  8. echo &#092;"<td><p class=normal>\".$row[0].\"</td>\";
  9. echo &#092;"<td><p class=normal>\".$row[1].\"</td>\";
  10. echo &#092;"<td><p class=normal>\".$row[2].\"</td>\";
  11. echo &#092;"</tr>\";
  12. }
  13. echo &#092;"</table>\";
  14. ?>


A gdybym tak czciał odwrócić kolejność danych questionmark.gif

Ale ze mnie maruda dry.gif
ARJ
poczytaj sobie o sortowaniu: Array
crash
rsort($dane); w odpowiednim miejscu, które sam musisz znaleźć snitch.gif
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.