PHP | fopen 函數

怎樣打開文件,返回文件流

最近更新時間 2021-01-05 19:41:24

fopen 函數打開文件或者 URL。

fopen() 函數將 filename 指定的名字資源綁定到一個流上。如果沒有文件訪問權限會發出警告,函數操作成功時返回 true,失敗時返回 false。

函數定義

fopen ( string $filename , string $mode , bool $use_include_path = false , resource $context = ? ) : resource
// 源文件位於:ext/standard/file.c
# 函數定義

PHP_FUNCTION(fopen)
{
  ...
  context = php_stream_context_from_zval(zcontext, 0);

  stream = php_stream_open_wrapper_ex(filename, mode, (use_include_path ? USE_PATH : 0) | REPORT_ERRORS, NULL, context);

  if (stream == NULL) {
    RETURN_FALSE;
  }

  php_stream_to_zval(stream, return_value);
}

參數

  • checkfilename - 文件路徑,可以是 URL 格式。
  • checkmode - 訪問類型。
    • 'r' 只讀方式打開,將文件指針指向文件頭。
    • 'r+' 讀寫方式打開,將文件指針指向文件頭。
    • 'w' 寫入方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
    • 'w+' 讀寫方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
    • 'a' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
    • 'a+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
    • 'x' 創建並以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 false,並生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。這和給 底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。
    • 'c' 以寫方式打開文件。
    • 'c+' 以讀寫方式打開文件。

返回值

  • checkstring - 操作成功時返回 true,失敗時返回 false。如果打開失敗,會產生一個 E_WARNING 錯誤。可以通過 @ 來屏蔽錯誤。

示例1: - 使用 fopen() 函數打開文件。

<?php
/**
 * PHP fopen() 函數打開文件。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 以讀寫方式打開文件
// 屏蔽錯誤
$fp = @fopen('foo.txt', 'r+');

// 判斷文件是否打開成功
// if ($fp === false) {}
// if(is_resource($fp)) {}
rss_feed