PHP | fopen 函数
Lasted 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)) {}