Forum und email

fpassthru

(PHP 4, PHP 5)

fpassthru — Geeft alle overgebleven data weer van een bestands pointer

Beschrijving

int fpassthru ( resource $handle )

Leest tot EOF van de opgegeven bestands pointer vanaf de huidige positie en schrijft het resultaat naar de output buffer.

Als er een fout optreedt, geeft fpassthru() FALSE terug. Anders geeft fpassthru() het aantal tekens terug, dat gelezen is van handle en die doorgegeven zijn aan de output.

De bestands pointer moet geldig zijn, en moet verwijzen naar een bestand dat succesvol geopend is door fopen() of fsockopen(). Het kan nodig zijn eerst rewind() te gebruiken om de bestands pointer terug aan het begin van het bestand te zetten, als je al data naar het bestand hebt geschreven. Het bestand wordt gesloten wanneer fpassthru() klaar is met lezen (en maakt handle dus onbruikbaar).

Als je alleen de inhoud van een bestand naar de output buffer wil sturen, zonder het eerst te wijzigen of te zoeken naar een bepaald beginpunt, kan je beter readfile() gebruiken, omdat dat je een fopen() aanroep scheelt.

Note: Wanneer je fpassthru() gebruikt op een binaire file op Windows systemen, zorg er dan voor dat het bestand is geopend in binaire mode door een b toe te voegen aan de mode in de aanroep van fopen().
Je wordt aangemoedigd om de b vlag te gebruiken als je te maken hebt met binaire bestanden, zelfs als jouw systeem het niet nodig heeft, zodat je scripts meer compatible zijn.

Example#1 fpassthru() gebruiken met binaire bestanden

<?php

// Open het bestand in binaire modus
$name ".\public\dev\img\ok.png";
$fp fopen($name'rb');

// stuur de juiste headers
header("Content-Type: image/png");
header("Content-Length: ".filesize($name));

// stuur het plaatje door en stop het script
fpassthru($fp);
exit;

?>

Zie ook readfile(), fopen(), popen(), en fsockopen()