PHP FAQ

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

piechnat

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);
  1. $zawartosc = join('', file('./jakis_plik.txt'));
  2. $nazwa_pliku = file('./jakis_plik.txt');
    for($i = 0; $i < count($nazwa_pliku); $i++)
    {
    $zawartosc .= $nazwa_pliku[$i].'<br />';
    }
  3. $zawartosc = file_get_contents('./jakis_plik.txt');
FAQ

6 komentarzy

$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();

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

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

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

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

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

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() ? ;)

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.