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)) {}