Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Problem z fopen() przy pliku 380 MB, Nie można otworzyć pliku o rozm. 380 MB
Sajrox
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam,

Mam kłopot z otwarcie pliku o rozmiarze 380 MB.

  1. <?php
  2. $fo = fopen('./plik.txt', 'r+');
  3. ?>


Ten oko kod wyświetla błąd:

Warning: fopen('./plik.txt') [function.fopen]: failed to open stream: Invalid argument in C:\wamp\www\.... on line 269


Czy jest jakiś sposób na otwarcie tak dużych plików ?
Zależy mi aby odczytać dany plik i go przeparsować linia po linii, jednak bez fopen()" title="Zobacz w manualu PHP" target="_manual nie mam jak tego dokonać.

------------------
Edit:
./plik.txt to jest tylko przykład.
Orginalny plik ótry chce otworzyć jest pod adresem:
http:/www.czesci24.pl/adm/porownywarki/nokaut3.xml

Jeśli komuś się uda go otworzyć za pomocą fopen() to naprawde wielki podziw (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Sajrox 28.11.2008, 12:52:23
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Dzizez, zle sciezke podales, 300MB plik to maly plik (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Gdzie masz (w jakim katalogu) plik otwierany w przegladarce (index.php), gdzie masz includowany plik (ten z fopen()) i gdzie masz plik: plik.txt
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(dr_bonzo @ 28.11.2008, 04:59:19 ) *
Dzizez, zle sciezke podales, 300MB plik to maly plik (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Gdzie masz (w jakim katalogu) plik otwierany w przegladarce (index.php), gdzie masz includowany plik (ten z fopen()) i gdzie masz plik: plik.txt

Hmmm, a czy w takim wypadku nie otrzymałby błędu "No such file or directory"?

(IMG:http://forum.php.pl/style_emoticons/default/czarodziej.gif) Błąd pewnie jest stąd, że próbujesz otworzyć plik ze zmiennymi w adresie:
http://www.webmaster-talk.com/php-forum/52...d-argument.html
Go to the top of the page
+Quote Post
Sajrox
post
Post #4





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


sytuacja jest nastepująca.
Musze pobrać plik z innego serwera a dokladnie:
http:/www.czesci24.pl/adm/porownywarki/nokaut3.xml

Mój błąd że od razu nie podałem pełnej oryginalnej ścieżki ale chciałem się dowiedzieć czy w ogóle można otwierać tak duże pliki za pomocą fopen()

A wiec:
Mam kod
  1. <?php
  2. $fo = fopen('http:/www.czesci24.pl/adm/porownywarki/nokaut3.xml', 'rb');
  3. ?>


i otrzymuje własnie taki błąd o którym wspomniałem wczesniej:

Warning: fopen('http:/www.czesci24.pl/adm/porownywarki/nokaut3.xml') [function.fopen]: failed to open stream: Invalid argument in C:\wamp\www\.... on line 269


Przy mniejszych plikach nie ma problemu, jednak tutaj sami widzicie (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Plik na pewno stnieje, ponieważ jak go otworze w przeglądarce to się pobiera. Jednak fopen()" title="Zobacz w manualu PHP" target="_manual już nie radzi :/

Czy ta funkcja ma jakieś ograniczenie ?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


No fajnie, podajesz wymyslony kod a nie ten ktory ci nie dziala.

Hmm podajesz jedno "/" za http.

Wklej DOKLADNIE ten kod ktorego uzywasz, a nie wpisuj go tu na nowo.

Ten post edytował dr_bonzo 28.11.2008, 13:35:36
Go to the top of the page
+Quote Post
Sajrox
post
Post #6





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Przepraszam mój błąd (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Za 1 razem po prostu chciałem wiedzieć czy funkcja fopen() jest w stanie otworzyć pliki o rozmiarze ok 380 mb.
Na to wygląda że może (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Faktycznie błąd tkwił w "/" aż wstyd mi ale każdemu może się zdarzyć (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Przed zamknięciem wątku zapytam się jeszcze czy wie ktoś może czy funkcja fopen()" title="Zobacz w manualu PHP" target="_manual ma jakieś ograniczenie co do wielkości pliku ?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Do 2GB spokojnie ci obsluzy - a wieksze - musisz poczytac.
Go to the top of the page
+Quote Post
Sajrox
post
Post #8





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


No właśnie trudno jest odnaleźć coś o tym.
Ewentualnie odczytujemy plik po kawałkach używając:
  1. <?php
  2. file_get_contents($filename, FILE_TEXT, true, $od, $do);
  3. ?>


Ale nie jestem pewien czy to poradzi sobie z dużym plikiem powyżej 2GB.

Ten post edytował Sajrox 29.11.2008, 00:05:29
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.08.2025 - 11:16