WithCoderWithCoderWithCoder

php函数fopen()和file_get_contents()的区别简介

    在PHP开发中对文件进行操作时,经常遇到fopen()和file_get_contents()函数。在之前的文章中“PHP文件函数fopen简介”和“PHP文件函数file_get_contents简介”中,也对两个函数分别进行了简单的介绍。通过对比,我们可以发现这两个函数在实现的功能上很相近。本文简单介绍fopen()和file_get_contents()的区别有哪些。

    1. 函数返回对象不同

        1.1 file_get_contents() 读取文件或URL,返回的对象是一个字符串,失败时返回false;

        1.2 fopen() 函数打开文件或URL,返回的是文件指针资源,打开失败时,也返回false。

    2. 操作方法不同

        2.1 file_get_contents()函数返回的是字符串,使用比较简单

        2.2 fopen() 函数返回的是文件句柄,需要用到fgets()函数从文件中按行读取内容,并使用feof()函数判断文件是否读取完成,读取完成后,还需要使用fclose()函数关闭文件句柄

    3. 内存占用

        从前两点可以发现,file_get_contents()函数因为一次读取全部内容,在文件内容过大时会导致PHP占用大量内存;而fopen()函数是按行读取,占用内存较小。

    综上,在打开文件时,文件内容小的时候,使用file_get_contents()函数会很简单。不过,如果读取的文件资源比较大的时候,用fopen()函数会比较合适。

欢迎分享交流,转载请注明出处:WithCoder » php函数fopen()和file_get_contents()的区别简介