PHP | fpassthru 函數

怎樣輸出圖片

最近更新時間 2021-01-18 15:17:48

fpassthru 函數輸出文件指針處的所有剩餘數據。

將給定的文件指針從當前的位置讀取到 EOF 並把結果寫到輸出緩衝區。如果已經向文件寫入數據,就必須調用 rewind() 來將文件指針指向文件頭。如果既不修改文件也不在特定位置檢索,只想將文件的內容下載到輸出緩衝區,應該使用 readfile(),這樣可以省去 fopen() 調用。

函數定義

fpassthru ( resource $handle ) : int
// 源文件位於:ext/standard/file.c
# 函數定義

PHPAPI PHP_FUNCTION(fpassthru)
{
  ...
  size = php_stream_passthru(stream);
  RETURN_LONG(size);
}

參數

  • checkhandle - 文件指針。

返回值

  • checkint - 字符數目。失敗時返回 false。

示例1: - 使用 fpassthru() 函數輸出圖片。

<?php
/**
 * PHP fpassthru() 函數輸出圖片。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 以二進制形式打開文件
$fileName = 'foo.png';
$fp = fopen($fileName, 'rb');

// 設置 Header
header("Content-Type: image/png");
header("Content-Length: " . filesize($fileName));

// 發送圖片並終止腳本
fpassthru($fp);
exit;
rss_feed