PHP
文件系统 | File System

file_put_contents

file_put_contents

(PHP 5, PHP 7)

file_put_contents - 将一个字符串写入一个文件

描述

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

这个函数与调用fopen(),fwrite()和fclose()相同,以将数据写入文件。

如果filename不存在,则创建该文件。否则,现有文件将被覆盖,除非FILE_APPEND标志被设置。

参数

filename

数据写入位置的路径。

data

要写入的数据。可以是字符串,数组或流资源。

如果data是流资源,则该流的剩余缓冲区将被复制到指定的文件。这与使用stream_copy_to_stream()类似。

您也可以将data参数指定为单维数组。这相当于file_put_contents($ filename,implode('',$ array))

flags

flags可以是以下标志的任意组合,并用二进制OR(|)运算符连接。

标志描述
FILE_USE_INCLUDE_PATH在包含目录中搜索文件名。有关更多信息,请参阅include_path。
FILE_APPEND如果文件文件名已经存在,则将数据追加到文件而不是覆盖它。
LOCK_EX在继续写作时获取文件的排他锁。换句话说,在fopen()调用和fwrite()调用之间发生flock()调用。这与使用模式“x”的fopen()调用不同。

context

使用stream_context_create()创建的有效上下文资源。

返回值

该函数返回写入文件的字节数,或返回FALSE失败的字节数。

警告

该函数可能返回布尔值FALSE,但也可能返回一个非布尔值,其值为FALSE。有关更多信息,请阅读布尔部分。使用===运算符来测试此函数的返回值。

例子

示例#1简单的使用示例

<?php $file = 'people.txt'; // Open the file to get existing content $current = file_get_contents($file // Append a new person to the file $current .= "John Smith\n"; // Write the contents back to the file file_put_contents($file, $current ?>

Example #2 使用标志

<?php $file = 'people.txt'; // The new person to add to the file $person = "John Smith\n"; // Write the contents to the file,  // using the FILE_APPEND flag to append the content to the end of the file // and the LOCK_EX flag to prevent anyone else writing to the file at the same time file_put_contents($file, $person, FILE_APPEND | LOCK_EX ?>

更新日志

描述
5.1.0增加了对LOCK_EX的支持以及将流资源传递给数据参数的功能

注意

注意:此函数是二进制安全的。

提示

如果fopen包装已经启用,那么可以使用URL作为文件名。有关如何指定文件名的更多详细信息,请参阅fopen()。请参阅支持的协议和包装以获取有关各种包装具有哪些功能的信息的链接,关于它们的用法的注释以及它们可能提供的任何预定义变量的信息。