欢迎访问宙启技术站
智能推送

PHP函数用法:file_get_contents()和file_put_contents()

发布时间:2023-06-22 04:07:42

PHP中有许多函数可以用来读取和写入文件。其中,file_get_contents()和file_put_contents()被广泛使用。这两个函数用于读取和写入整个文件的内容,而无需显式地打开和关闭文件句柄,这使得读写操作更加简便、易于使用。

file_get_contents()函数

file_get_contents()函数可以用来读取整个文件的内容,并将其作为字符串返回。该函数接受一个参数,表示需要读取的文件路径。例如,如果要读取文件路径为“/var/www/html/index.html”下的文件,则可以使用以下代码:

$file_contents = file_get_contents('/var/www/html/index.html');

此代码将返回整个文件的内容,并将其存储在$file_contents变量中。该函数还有一个可选参数,用于指定是否使用缓存,以及如何使用缓存。例如,您可以使用以下代码来禁用缓存:

$file_contents = file_get_contents('/var/www/html/index.html', false, null);

注:第二个参数是一个布尔值,true表示启用缓存,false表示禁用缓存;第三个参数是一个流上下文。如果您想自定义缓存策略,可以设置此参数。

file_put_contents()函数

与file_get_contents()函数类似,file_put_contents()函数可以用来将一个字符串写入一个文件。该函数需要两个参数,一个是要写入的文件名,另一个是要写入的内容。例如,如果要将字符串“Hello, world!”写入到文件“newfile.txt”中,则可以使用以下代码:

file_put_contents('newfile.txt', 'Hello, world!');

此代码将打开文件“newfile.txt”,将字符串“Hello, world!”写入文件,然后关闭文件句柄。如果文件不存在,则会创建一个新文件。

该函数还有两个可选参数。 个参数是一个标志,用于指定写入文件的方式。默认情况下,该参数的值为0,表示文件写入模式为覆盖模式,即每次写入会覆盖原文件的内容。如果您想将内容追加到文件的末尾,可以将该参数设置为FILE_APPEND,如下所示:

file_put_contents('newfile.txt', 'Hello, world!!', FILE_APPEND);

该代码将追加字符串“Hello, world!”,而不会覆盖原来的内容。

另一个可选参数是一个流上下文。 如果您需要使用自定义的文件访问模式或文件权限,可以设置此参数进行自定义。例如,您可以使用以下代码:

$context = stream_context_create([

    'ftp' => [

        'overwrite' => true,

        'username' => 'username',

        'password' => 'password'

    ]

]);

file_put_contents('ftp://example.com/newfile.txt', 'Hello, world!', 0, $context);

以上代码将创建一个FTP上下文,指定文件写入模式为覆盖模式,并使用ftp用户名和密码进行身份验证,然后将字符串“Hello, world!”写入到“example.com”的“newfile.txt”中。

总结:

file_get_contents()和file_put_contents() 是PHP自带函数,可用于读取和写入文件。

file_get_contents() 可以返回指定文件的全部内容,不用打开和关闭文件句柄。可以采用不同方式来设置缓存,以适合项目实际需求。

file_put_contents() 不需要使用文件句柄,可以直接写入文件。文件名是路径和文件名的组合。如果文件不存在,则会自动创建。此函数还有两个可选参数 – 文件写入标志 和 流上下文。文件写入标志指定写入文件方式,如果被迫覆盖,则每次写入将覆盖原文件内容。流上下文参数允许您自定义文件访问模式和文件权限等信息。