[php]czytanie z pliku - tu działa, a tam nie

0

Witam. Tworze sobie prostą stronke internetową opartą na plikach (mysql nie wchodzi w grę). No i w pewnym momencie trzeba otworzyć plik. Problem polega na tym, że mam dwie klasy do obsługi dwóch podsystemów, które mają identyczny kod ładowania pliku, ale jedna klasa zawsze otworzy ten plik, a druga go nigdy nie otworzy. Ten kod nigdy nie jest wywoływany dwa razy na stronie. Otwierany jest najwyżej jeden plik.

$this->filename = $name; // zapisujemy sobie nazwe pliku - $name to parametr funkcji
$this->file = fopen($name, "r"); // otwieramy plik
$this->xml = fread($this->file, filesize($name)); // czytamy z pliku
fclose($this->file); // zamykamy plik

Jest jeszcze jedna interesująca rzecz. Gdy uruchamiam ten kod w środowisku Zend (debugging) wszystko działa jak należy. Dopiero jak chcę się połączyć z localhostem to dzieją sie takie myki.

Prosze pomóżcie, mi skończyły się już pomysły.

0

jakis blad wywala ??

0

Żadnego błędu nie wywala.

0

a z error_reporting(E_ALL); na poczatku skryptu ?

0

a musisz te wszystkie dane przypisywać do klasy ? zwłaszcza $this->file, możesz pokazać trochę więcej kodu, w czym to siedzi zwłaszcza ?

$this->filename = $name; // zapisujemy sobie nazwe pliku - $name to parametr funkcji
$file = fopen($name, 'r'); // otwieramy plik
$this->xml = fread($file, filesize($name)); // czytamy z pliku
fclose($file); // zamykamy plik

jaką masz wersję php ?

Problem polega na tym, że mam dwie klasy do obsługi dwóch podsystemów, które mają identyczny kod ładowania pliku, ale jedna klasa zawsze otworzy ten plik, a druga go nigdy nie otworzy. Ten kod nigdy nie jest wywoływany dwa razy na stronie. Otwierany jest najwyżej jeden plik.

nie rozumiem tego ... masz dwie klasy, w każdej masz funkcję otwierania pliku, jedna klasa potrafi otworzyć plik a druga nie ? no to używaj tej pierwszej ... nie czaję przekazu

0

Dobra, już sobie poradziłem. Zmieniłem wersję php z 5 na 4 i wszystko działa. Więc mój problem znika. Ale dlaczego w php4 to działa a w php5 nie?

Co do klas to mam dwie, które robią zupełnie co innego ale mają wspólny kod odczytywania z pliku, więc nie mogę po prostu użyć pierwszej :)

0

W php5 gdy przekazywałes jako parametr funkcji $this->file php przekazuje faktycznie uchwyt do klasy a nie zmienna $file z danej klasy, natomiast w php4 przekazywana jest wartość zmiennej. Dlatego ci nie działało.

1 użytkowników online, w tym zalogowanych: 0, gości: 1