Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z zapisem do pliku
Forum PHP.pl > Forum > Przedszkole
matwiej
Problem wynika zapewne z mego błędnego rozumowania. Mianowicie, chciałbym aby w pliku zapisywało mi informacje po przecinku przykładowo
Kod
inf1, info2, info4,

Niestety otrzymuje
Kod
info1,, info2,, info4,


Kod:
  1. <?php
  2.  
  3. class strona {
  4. public $tab;
  5.  
  6. function __construct() {
  7.  
  8. $this->zaladujPlik();
  9.  
  10. if(!empty($_POST['panel'])){
  11. $this->dodajDoTablicy();}
  12.  
  13. $this->wyswietlPlik();
  14. }
  15.  
  16.  
  17.  
  18. // Załadowania zawartosci pliku
  19. function zaladujPlik() {
  20. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  21. $wp = fopen("$DOCUMENT_ROOT\plik.txt", 'r');
  22.  
  23. while (!feof($wp)) {
  24. //$temp = fgets($wp);
  25. // array_push($this->tab,$temp );
  26. $this->tab= fgetcsv($wp,900,',');
  27.  
  28. }
  29. fclose($wp);
  30.  
  31. }
  32.  
  33. // Wyswietlenie filmow
  34. function wyswietlPlik() {
  35.  
  36. foreach ($this->tab as $temp) {
  37.  
  38. echo "<div class=film>".$temp."</div>";
  39. }
  40.  
  41. }
  42.  
  43. // Zapisanie calej tablicy do pliku
  44. function zapiszPlik(){
  45. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  46. $wp = fopen("$DOCUMENT_ROOT\plik.txt", 'w');
  47.  
  48. foreach ($this->tab as $temp) {
  49.  
  50. fwrite($wp,$temp.',');
  51.  
  52. }
  53. fclose($wp);
  54. }
  55.  
  56. //dodanie do tablicy filmu
  57. function dodajDoTablicy(){
  58. $dodaj = $_POST['panel'];
  59. $gatunek = $_POST['gatunek'];
  60. $sum = $dodaj." "."<div class=gatunek>".$gatunek."</div>";
  61. array_push($this->tab,$sum );
  62. $this->zapiszPlik();
  63. }
  64.  
  65. }
  66.  
  67. ;
  68. ?>
  69.  


Działanie tego skryptu polega na wczytaniu do tablicy interesujących mnie danych następnie dodanie jakiegoś i zapisanie całej tablicy do pliku. Niestety wstawia mi podówjny przecinek i nie mam pojęcia dlaczego.
Z tego co zrozumiałem funkcja
  1. fgetcsv($wp,900,',');
Wczytuje do przecinka pomijając go więc muszę przy zapisie ten przecinek dodawać, dobrze to rozumiem ?
chmiello
Spróbuj to:
  1. fwrite($wp,$temp.',');


zamienić na to :
  1. fwrite($wp,$temp.' ');



ew, inny sposób to po wczytaniu do $this->tab, usuń wszystkie przecinki. Najprościej :
  1. // Załadowania zawartosci pliku
  2. function zaladujPlik() {
  3. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  4. $wp = fopen("$DOCUMENT_ROOT\plik.txt", 'r');
  5.  
  6. while (!feof($wp)) {
  7. //$temp = fgets($wp);
  8. // array_push($this->tab,$temp );
  9. $this->tab= fgetcsv($wp,900,',');
  10.  
  11. }
  12. fclose($wp);
  13.  
  14. foreach($this->tab as $id=>$element){
  15. $this->tab[$id] = str_replace(',','',$element);
  16. }
  17.  
  18. }
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.