我刚接触PHP,不太清楚file()
、file_get_contents()
和fopen()
函数之间有什么区别,以及何时应该使用其中的某个函数?
前两者,file
和file_get_contents
十分相似。它们都读取整个文件,但是file
将文件读入一个数组中,而file_get_contents
将其读入一个字符串中。由file
返回的数组将被换行符分隔,但每个元素仍然带有终止符号,因此您仍然需要注意这一点。
fopen
函数完全不同——它打开一个文件描述符,该描述符作为流来读取或写入文件。它是一个更低级别的函数,只是C语言fopen
函数的简单包装器,仅调用fopen
将不做任何事情除了打开一个流。
一旦您打开了文件句柄,就可以使用其他函数,例如fread
和fwrite
来操作句柄引用的数据,完成后,您将需要使用fclose
关闭流。这些函数使您对所读取的文件具有更好的控制力,如果需要原始二进制数据,则可能需要使用它们,但通常您可以使用更高级别的功能。
因此,概括一下:
file
— 将整个文件内容读取到一个行数组中。file_get_contents
— 将整个文件内容读取到一个字符串中。fopen
— 打开文件句柄,可以使用其他库函数来操作,但本身不进行读取或写入。file
— 将整个文件读入数组中
file_get_contents
— 将整个文件读入字符串中
fopen
— 打开文件或URL