Home  >  Article  >  Backend Development  >  php file_get_contents method of reading large-capacity files_PHP tutorial

php file_get_contents method of reading large-capacity files_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:13:161041browse

When we encounter a large text file, such as a large file exceeding tens of megabytes or even hundreds of megabytes or several gigabytes, it is often impossible to open it successfully with Notepad or other editors because they all need to put all the file contents. into the memory, then a memory overflow will occur and an opening error will occur. In this case, we can use PHP's file reading function file_get_contents() to read in segments.

Function Description
string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] )
Same as file(), except file_get_contents() reads the file into a string. Contents of length maxlen will be read starting at the position specified by the offset parameter. On failure, file_get_contents() returns FALSE.

The file_get_contents() function is the preferred method for reading the contents of a file into a string. If the operating system supports it, memory mapping technology will also be used to enhance performance.

Application:

echo $str;
The code is as follows
 代码如下 复制代码

$str = $content=file_get_contents("2.sql",FALSE,NULL,1024*1024,1024);
echo $str;

Copy code

 代码如下 复制代码

$fp=fopen('2.sql','r');
while (!feof($fp)){
$str.=fread($fp, filesize ($filename)/10);//每次读出文件10分之1
//进行处理
}

echo $str;

$str = $content=file_get_contents("2.sql",FALSE,NULL,1024*1024,1024);

If you just want to read a smaller file in segments and finish reading it, you can use the fread() function
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn