Programowanie w języku PHP » FAQ

Na ile sposobów można pobrać zawartość pliku

  • 2006-05-20 13:05
  • 6 komentarzy
  • 608 odsłon
  • Oceń ten tekst jako pierwszy
1.
$fp = fopen('./jakis_plik.txt', 'r');
flock($fp, 1);
while(!feof($fp))
{
  $zawartosc[] = fgets($fp, 2048);
}
flock($fp, 3);
fclose($fp);
 
$zawartosc = join('', $zawartosc);

2.
$nazwa_pliku = './jakis_plik.txt';
$fp = fopen($nazwa_pliku, 'r');
flock($fp, 1);
$zawartosc = fread($fp, filesize($nazwa_pliku));
flock($fp, 3);
fclose($fp);

3.
$zawartosc = join('', file('./jakis_plik.txt'));

4.
$nazwa_pliku = file('./jakis_plik.txt');
for($i = 0; $i < count($nazwa_pliku); $i++)
{
  $zawartosc .= $nazwa_pliku[$i].'<br />';
}

5.
$zawartosc = file_get_contents('./jakis_plik.txt');

6 komentarzy

szopler 2010-10-01 20:57

Jak otworzyć plik blokowo? Przypuszczalnie mam w delhi kod:
[code]
TDataRec = packed record
DanaA : Single;
DanaB : Integer;
i tak dalej...
End;

var
DataRec : Array of TDataRec;
NofRec : LongWord;

...
S:=FileSize(F);
NofRec:= S div 56;
For k:=1 to NofRec do BlockRead(F, DataRec[k-1],56);
...
[/code]

Jak to przenieść na PHP'a ??
F - uchwyt do pliku

rudolfak 2009-06-04 17:40

$nazwa_pliku = file('./jakis_plik.txt');
for($i = 0; $i < count($nazwa_pliku); $i++)
{
  $zawartosc .= $nazwa_pliku[$i].'<br />';
}

zabujstwo dla serwera w przypadku dużych plików.
pozatym czym się to różni od tego:

$zawartosc = join('', file('./jakis_plik.txt'));

może tym, że ten 2-gi jest bardziej optymalny?? tylko (sic!)

Czepiając się:
zapomnieliśmy jeszcze o:

fscanf();
fgetc();
readfile();

<quote>Mam takie pytanko, czy wie ktoś jak wyświetlić na stronie plik zdalny. Chodzi mi o to aby wyświetlić np. plik http://www.google.pl/index.html</quote>
ja osobiście bym wczytał plik przez cURL, odarł z nagłówków, etc, i wstawił na stronę.
http://pl.php.net/manual/en/book.curl.php <- dokumentacja cURL

Dragas 2008-11-01 15:02

Mam takie pytanko, czy wie ktoś jak wyświetlić na stronie plik zdalny. Chodzi mi o to aby wyświetlić np. plik http://www.google.pl/index.html

Kooba 2004-12-21 18:42

$zawartosc_pliku = fread($fd, filesize($nazwa_pliku)); - powino być $fp... chyba dodałeś tą wskazówke nie sprawdzając kodu :P

DhuCerbin 2003-12-09 18:46

jesli zas chodzi o wczytanie calego pliku naraz, jest najszybsza z tutaj podanych, oczywiscie jesli chodzi o wczytanie okreslonej linijki, lepszy jest 1 sposob.
zapomnielismy o file_get_content() ? ;)

Mac 2003-02-06 17:28

Jeżeli chodzi o ostatni przykład to go nie polecam, ponieważ od funkcji file() już się odchodzi, ponieważ funckja ta wczytuje cały plik do tablicy i w przypadku dużych plików (np. logi serwera (pisząc skrypt do analizy logów serwera)) to ta funkcja zużywa dużo pamięci serwera.