Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie dopisuje wartości do pliku sql , to txt już tak
Forum PHP.pl > Forum > PHP
IceManSpy
Witam

Mam pewien, problem, który nie wiem jak rozwiązać. Rozbudowuję pewną klasę o swoje metody m. in. o zapis do pliku. Problem się właśnie pojawia tutaj. Chcę dodać na końcu pliku jakieś swoje dane, ale niestety zamiast dodawać, plik jest nadpisywany. Próbowałem na 2 sposoby:
  1. $current = file_get_contents($this->_fileName); // zmienna z nazwą pliku jest poprawna
  2. $current .= "Damian \n";
  3. $current .= "New liane";
  4. //$file_put_contents = file_put_contents($this->_fileName, $current, FILE_APPEND);
  5. $file_put_contents = file_put_contents($this->_fileName, $current.PHP_EOL, FILE_APPEND);

oraz:
  1. $fh = fopen('filename.sql', 'a') or die("can't open file");
  2. $stringData = "New Stuff 1\n";
  3. fwrite($fh, $stringData);
  4. $stringData = "New Stuff 2\n";
  5. fwrite($fh, $stringData);
  6. fclose($fh);


Żaden nie działa. Plik ma rozszerzenie sql. Ale jeśli zmienię go na inny, np txt, to już działa normalnie.
skowron-line
Tak na odwal się to http://pl2.php.net/manual/en/function.rename.php
IceManSpy
To zostawię jako ostateczność, a nie ma innego sposobu?
skowron-line
A w 1 przykładzie to co $current pokazuje questionmark.gif
IceManSpy
Tylko dziwne, bo skoro file_get_contents pobiera zawartość, to u mnie nie pobiera. o.O
  1. $current = file_get_contents($this->_fileName);
  2. echo "Po pobraniu: ".$current;
  3. $current .= "Damian \n";
  4. $current .= "New liane";
  5. echo "Po dopisaniu: ".$current;
  6. $file_put_contents = file_put_contents($this->_fileName, $current.PHP_EOL, FILE_APPEND);

Dostaję: Po pobraniu: Po dopisaniu: Damian New liane


Problem jest taki, że klasa po które dziedziczę wypluwa plik sql, a ja chcę go w swojej klasie otworzyć, dopisać kilka swoich linijek i zapisać go do tego samego pliku.

EDIT 1:
Ponadto jak robię rename pliku sql, to dostaję: Warning: rename(filename.sql,filename.txt) [function.rename]: Proces nie może uzyskać dostępu do pliku, ponieważ jest on używany przez inny proces. (code: 32)

Plik nie jest otwarty w żadnym innym programie.

EDIT 2:
Myślałem, że problem się rozwiązał jednak nie. Problem jest wtedy, kiedy klasa bazowa zapisze ten plik. Jak odpalę w swojej, to wtedy zawartość pliku jest nadpisywana.

Wystarczy, że zrobię file_get_contents i zawartość pliku robi się pusta.
EDIT 1 jest nadal aktualny.

W najgorszym przypadku zrobię klasę, która nie dziedziczy, ale będzie tworzyła wewnątrz siebie obiekt klasy, po której chciałbym dziedziczyć.
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.