Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odczyt z plików + formatowanie w tabeli
Forum PHP.pl > Forum > Przedszkole
zman85
Witam, potrzebuję kolejnej pomocy, mianowicie mam kilkanaście plików których jest x - będzie się ich ilość zwiększać lub zmniejszać, ich zawartość wyglądą następująco:

Kod
imie\nnazwisko\nadres\nkod\nmiasto\n


i potrzebuję przedstawić zawartośc wszystkich plików w tabelce w sposób taki:

nazwapliku1 | imie | nazwisko | adres | kod | miasto
nazwapliku2 | imie | nazwisko | adres | kod | miasto
nazwapliku3 | imie | nazwisko | adres | kod | miasto
nazwapliku4 | imie | nazwisko | adres | kod | miasto

potrzebuję też aby widoczna wyżej nazwa pliku 1..4 była automatycznie pobierana z nazwy pliku i równiez dołączona do tabelki. Całośc jest a w zasadzie ma być tabelką <table><tr></table> itd...

Narazie doszedłem do tego:

  1. <?php
  2. $plk   = file_get_contents('nazwapliku1');
  3. $tmp   = explode(&#092;"n\", $plk);
  4. $tmp_c = count($tmp);
  5. for ($i = 0; $i < $tmp_c; $i++) {
  6.     $linia = explode('n', trim($tmp[$i]));
  7.     echo &#092;"<TABle><TR><TD>{$linia[0]}</TD><TD>{$linia[1]}</TD></TR>\" .
  8.          &#092;"<TR><TD>{$linia[2]}</TD><TD>{$linia[3]}</TD></TR>\" .
  9.          &#092;"<TR><TD>{$linia[4]}</TD><TD>{$linia[5]}</TD></TR>n\";
  10. }
  11. ?>


No i niestety tutaj dane pokazują się w jednej kolumnie, jak i nie ma możłiwości prezentacji wszystkich plików, z tego powodu bo sam tutaj musze nadać zmienną $plk - a o to mi nie chodzi.

Bardzo prosze o nakierowanie lub jakąć większą pomoc jeśli by to nie stanowiło problemu.

Pozdrawiam i czekam za sugestiami/odpowiedziami.
gu35t
  1. wynik:
  2. 1.txt ala kot  dupa
  3. 2.txt lulak bakacz fifka
  4. 33.txt lsd ecstasy acid
  5. 34.txt lufka fifka bibula
  6. 35.txt buch kocha hasz
  7. 37.txt pusto bongo kielbasa
  8. 38.txt matma hista biola
  9. kod:
  10. <?php
  11. $dir = './pliki/';
  12. $fo = opendir($dir);
  13. while($plik = readdir($fo)){
  14. if($plik == &#092;".\" || $plik == \"..\") continue;
  15. $tabp[] = $plik;
  16. }
  17. closedir($fo);
  18. echo &#092;"<table>\";
  19.  
  20. foreach($tabp as $v){
  21. $f = fopen($dir . $v, &#092;"r\");
  22. $con = fgets($f, 255);
  23. fclose($f);
  24. $newcon = explode(&#092;"|\", $con);
  25. echo(&#092;"<tr><td>$v</td><td>$newcon[0]</td><td>$newcon[1]</td><td>
  26. $newcon[2]</td></tr>&#092;");
  27. }
  28. echo &#092;"</table>\";
  29. print_r($tabp);
  30. show_source(__FILE__);
  31. ?>

tj najprosciej. zapoznaj sie jeszcze z glob()
zman85
Cytat(gu35t @ 2005-05-27 16:37:09)
  1. wynik:
  2. 1.txt    ala    kot     dupa
  3. 2.txt    lulak    bakacz    fifka
  4. 33.txt    lsd    ecstasy    acid
  5. 34.txt    lufka    fifka    bibula
  6. 35.txt    buch    kocha    hasz
  7. 37.txt    pusto    bongo    kielbasa
  8. 38.txt    matma    hista    biola
  9. kod:
  10. <?php
  11. $dir = './pliki/';
  12. $fo = opendir($dir);
  13. while($plik = readdir($fo)){
  14.     if($plik == &#092;".\" || $plik == \"..\") continue;
  15.     $tabp[] = $plik;
  16.     }
  17. closedir($fo);
  18. echo &#092;"<table>\";
  19.  
  20. foreach($tabp as $v){
  21.     $f = fopen($dir . $v, &#092;"r\");
  22.     $con = fgets($f, 255);
  23.     fclose($f);
  24.     $newcon = explode(&#092;"|\", $con);
  25.     echo(&#092;"<tr><td>$v</td><td>$newcon[0]</td><td>$newcon[1]</td><td>
  26.     $newcon[2]</td></tr>&#092;");
  27. }
  28. echo &#092;"</table>\";      
  29. print_r($tabp);
  30. show_source(__FILE__);
  31. ?>

tj najprosciej. zapoznaj sie jeszcze z glob()

Witaj,
jest okay, ale niestety nie wszystko działa, mianowicie - ładnie w tabelce wyświetla się pierwsza kolumna z nazwą pliku i później 2ga kolumna i dalszych 3,4,5... już nie ma, dane w plikach są oddzielone załamaniem wiersza "\n" i nawet zmieniłem to w "explode" ale nadal pokazuje tylko kolumne z nazwą pliku oraz pierwszymi danymi do złamania wiersza, dalszych danych niestety nie ma.

Mógłbyś coś zaradzić na to gu35t, lub ktoś inny czytający tego posta questionmark.gif

A tak nawiasem mówiąc Dziękuję już za to co napisałeś "gu35t". to już 3/4 pracy zrobione ;-)) Jeszcze raz Dzięki
gu35t
  1. 1.txt ala kot  dupa
  2. 2.txt lulak bakacz fifka
  3. 33.txt lsd ecstasy acid
  4. 34.txt lufka fifka bibula
  5. 35.txt buch kocha hasz
  6. 37.txt pusto bongo kielbasa
  7. 38.txt matma hista biola
  8. <?php
  9. $dir = './pliki/';
  10. $fo = opendir($dir);
  11. while($plik = readdir($fo)){
  12. if($plik == &#092;".\" || $plik == \"..\") continue;
  13. $tabp[] = $plik;
  14. }
  15. closedir($fo);
  16. echo &#092;"<table>\";
  17.  
  18. foreach($tabp as $v){
  19. $f = fopen($dir . $v, &#092;"r\");
  20. $con = fread($f, filesize($dir.$v)+1);
  21. fclose($f);
  22. $newcon = explode(&#092;"n\", $con);
  23. echo(&#092;"<tr><td>$v</td><td>$newcon[0]</td><td>$newcon[1]</td><td>
  24. $newcon[2]</td></tr>&#092;");
  25. }
  26. echo &#092;"</table>\";
  27. show_source(__FILE__);
  28. print_r($tabp);
  29. print_r($newcon);
  30. ?>


fgets czyta tylko do konca pliku (\n) lub 255 pierwszych znakow w pliku. jak masz kilka wersow w pliku uzyj fread()[zobacz php.net]
zman85
Cytat(gu35t @ 2005-05-27 17:13:36)
  1. 1.txt    ala    kot     dupa
  2. 2.txt    lulak    bakacz    fifka
  3. 33.txt    lsd    ecstasy    acid
  4. 34.txt    lufka    fifka    bibula
  5. 35.txt    buch    kocha    hasz
  6. 37.txt    pusto    bongo    kielbasa
  7. 38.txt    matma    hista    biola
  8. <?php
  9. $dir = './pliki/';
  10. $fo = opendir($dir);
  11. while($plik = readdir($fo)){
  12.     if($plik == &#092;".\" || $plik == \"..\") continue;
  13.     $tabp[] = $plik;
  14.     }
  15. closedir($fo);
  16. echo &#092;"<table>\";
  17.  
  18. foreach($tabp as $v){
  19.     $f = fopen($dir . $v, &#092;"r\");
  20.     $con = fread($f, filesize($dir.$v)+1);
  21.     fclose($f);
  22.     $newcon = explode(&#092;"n\", $con);
  23.     echo(&#092;"<tr><td>$v</td><td>$newcon[0]</td><td>$newcon[1]</td><td>
  24.     $newcon[2]</td></tr>&#092;");
  25. }
  26. echo &#092;"</table>\";      
  27. show_source(__FILE__);
  28. print_r($tabp);
  29. print_r($newcon);
  30. ?>


fgets czyta tylko do konca pliku (\n) lub 255 pierwszych znakow w pliku. jak masz kilka wersow w pliku uzyj fread()[zobacz php.net]

Stary, dobry browar się należy.

Dziękuję !

Pomoc otrzymana, można zamknąc post'a.
gu35t
Cytat
Stary, dobry browar się należy.


polej na maila => optiv1@op.pl moze byc dog in the fog albo lech ;-)
zman85
A przyszedł mi jeszcze jeden pomysł, który byłby naprawdę użyteczny, chciałbym aby w tej tabeli na końcu każdej kolumny był przycisk pozwalający mi usunąć dany plik co równałoby się z usunięciem danego rekordu z mojej tabeli.

Jeśli ktos mógłby to delikatnie mówiąc przerobić było by fantastico :roll2:
gu35t
  1. <?php
  2. $dir = './pliki/';
  3.  
  4. if(isset($_GET['id']) && is_numeric($_GET['id'])){
  5. unlink($dir . $_GET['id'] . '.txt');
  6. }
  7.  
  8. $fo = opendir($dir);
  9. while($plik = readdir($fo)){
  10. if($plik == &#092;".\" || $plik == \"..\") continue;
  11. $tabp[] = $plik;
  12. }
  13. closedir($fo);
  14. echo &#092;"<table>\";
  15.  
  16. foreach($tabp as $v){
  17. $f = fopen($dir . $v, &#092;"r\");
  18. $con = fread($f, filesize($dir.$v)+1);
  19. fclose($f);
  20. $newcon = explode(&#092;"n\", $con);
  21. echo(&#092;"<tr><td>$v</td><td>$newcon[0]</td><td>$newcon[1]</td><td>
  22. $newcon[2]</td><td><a href=&#092;"test.php?id=\". substr($v, 0, -4) . \"\">usun</a></td></tr>\");
  23. }
  24. echo &#092;"</table>\";
  25. show_source(__FILE__);
  26. print_r($tabp);
  27. print_r($newcon);
  28. ?>
zman85
No prawie jest dobrze, ale ... skrypt ten kasuje tylko pliki numeryczne.txt
a jeśli ja mam plik bez rozszerzenia "alamakota" questionmark.gif Rozumiem że muszę chyba usunąc frazę .txt no ale zostaje tylko numeryka, muszę zmienić w substr() żeby mi nie ucinało rozszerzenia, bo w moim plikach rozszerzenia po prostu nie ma, ale dalej to mi nic nie daje bo ja mam nie dośc że pliki bez rozszerzeń to jeszcze skłądające się ze znaków literowych, cyfr, myślników i podkreśleń....
gu35t
kolo a co Ty chcesz zrobic? ehhh tak trudno poszukac do czego sluza funkjce ktore uzylem w skrypcie? znasz wogule podstawy php ?
zman85
Cytat(gu35t @ 2005-05-28 10:20:11)
kolo a co Ty chcesz zrobic? ehhh tak trudno poszukac do czego sluza funkjce ktore uzylem w skrypcie? znasz wogule podstawy php ?

Podstawy znam, mieszam i mieszam, zmieniam substr() i wartości get(id) ale marne rezultaty.
A to jest bardzo prosty system logowania i rejestracji użytkowników oparty na plikach, a to co pomogłes i dalej szukam przyczyny jest mi potzebne do panelu adminisatrcyjnego gdzie miałbym wgląd w dane użytkownika (niestety prócz hasła (md5)) no i żebym miał możliwość usuwania takiej osoby a razem z nia rekordu z bazy.
gu35t
Cytat
Podstawy znam, mieszam i mieszam, zmieniam substr() i wartości get(id) ale marne rezultaty.

LOL
ludzie wytlumaczcie mu bo ja juz nie mam sily....
nospor
@gu35t nie zalamuj się stary. są gorsze przypadki

@zman85 link jest tworzony z nazwą pliku. Usuwanie jest tu (i dodawanie txt)
  1. <?php
  2.  
  3. if(isset($_GET['id']) && is_numeric($_GET['id'])){
  4. unlink($dir . $_GET['id'] . '.txt');
  5. }
  6.  
  7. ?>
Tutaj okreslasz czy chcesz dodawać rozszenie do pliku czy nie. Albo twórz linki z pelną nazwą pliku. Wówczas nie uzywaj substr
zman85
No chłopaki, zmotywowaliście mnie do użycia mózgu ;-))

Udało się, ale skorzystałem w file_exist zamiast isset, a chyba tak tez może być.

Chyba zacznę dogłębniej nauki php, bo co raz częsciej ten język zaczyna mi się przydawać cool.gif

  1. <?php
  2. $dir = './users/';
  3.  
  4. if( file_exists ($dir . $_GET['id'] )){
  5. unlink($dir . $_GET['id']);
  6. }
  7.  
  8. $fo = opendir($dir);
  9. while($plik = readdir($fo)){
  10. if($plik == &#092;".\" || $plik == \"..\") continue;
  11. $tabp[] = $plik;
  12. }
  13. closedir($fo);
  14. echo &#092;"<table>\";
  15.  
  16. foreach($tabp as $v){
  17. $f = fopen($dir . $v, &#092;"r\");
  18. $con = fread($f, filesize($dir.$v)+1);
  19. fclose($f);
  20. $newcon = explode(&#092;"n\", $con);
  21. echo(&#092;"<tr><td>$v</td><td>$newcon[0]</td><td>$newcon[1]</td><td>
  22. $newcon[2]</td><td><a href=&#092;"admin.php?id=$v\">usun</a></td></tr>\");
  23. }
  24. echo &#092;"</table>\"; 
  25. show_source(__FILE__);
  26. print_r($tabp);
  27. print_r($newcon);
  28. ?>
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.