fpassthru în PHP

Trimite la ieșire tot restul unui fișier deschis, de la poziția curentă până la final.

Sintaxă
fpassthru($stream): int

Ce face fpassthru

fpassthru afișează tot ce a rămas necitit din fișier și returnează numărul de octeți trimiși. Este ca readfile, dar lucrează pe un fișier deja deschis, deci poți sări întâi peste o parte cu fseek.

Parametri

Parametru Descriere
$stream Resursa returnată de fopen.

Ce returnează

Numărul de octeți trimiși.

Exemple

Exemplul 1: Fișierul fără primul rând

<?php
file_put_contents("export.csv", "nume,oras\nAna,Iași\nIon,Cluj\n");
$f = fopen("export.csv", "r");

fgets($f);
$octeti = fpassthru($f);
fclose($f);

echo "($octeti octeți)";

Rezultat

Ana,Iași
Ion,Cluj
(19 octeți)

Greșeli frecvente

  • Te aștepți să primești conținutul într-o variabilă. fpassthru îl afișează. Pentru variabilă folosește stream_get_contents.

Comenzi înrudite

  • readfile: Citește un fișier și îl trimite direct la ieșire (spre browser), fără să îl încarce în memorie.
  • fseek: Mută cursorul unui fișier deschis la o anumită poziție, în octeți.
  • fopen / fclose: Deschide un fișier pentru citire sau scriere și returnează o resursă; fclose îl închide.