Home >Backend Development >PHP Problem >How to store the entire file data into an array line by line in php
In the previous article, we introduced and introduced to you a method of reading the entire file at one time, and this method can store the read content into a string. If you are interested, you can click "How to store all data of a file into a string in php" View. The following continues to introduce the method of reading the entire file at once.
The method in the previous article will output the entire content of the file in one line. It is okay if the file data is small. If there is too much file data, for example:
Use the file_get_contents() function to read the output:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = 'test.txt'; $filestr = file_get_contents($file); echo $filestr; ?>
The output result is
It can be seen that the output content is not conducive to reading. So how can we output the entire contents of the file line by line? You can use arrays.
You can read the entire file at once and store the data into the array line by line. Each line of data corresponds to an array element.
Let’s take a look at the following code:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = 'test.txt'; $filearr = file($file,FILE_IGNORE_NEW_LINES); var_dump($filearr); ?>
Output result:
Is it easy to read, and sometimes If you need to read the entire content, but only need one row of data for the time being, you can use the form array name[subscript]
to get the data of the specified row. For example, if you want the third row of data, you can:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = 'test.txt'; $filearr = file($file,FILE_IGNORE_NEW_LINES); echo $filearr[2]; //数组下标是从0开始的 ?>
Output result:
Let’s take a look at the key functions insidefile().
file($filename,$flags,$context)
The function accepts one required parameter $filename
(the file to be read) and two optional parameters $flags
and $context
(the environment of the file handle).
But generally the $flags
parameter is still set, which can be one or more of the following constants:
##FILE_USE_INCLUDE_PATH: Search for files in include_path (in php.ini), the default is FALSE; if you want, set the parameter value to '1'.
FILE_IGNORE_NEW_LINES: Do not add a newline character at the end of each element of the array;
FILE_SKIP_EMPTY_LINES: Skip empty lines.
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $file = 'test.txt'; $filearr = file($file,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES); var_dump($filearr); ?>The output result is:
$flagsParameters If you set multiple constant values, you need to use
|separated.
《PHP interview questions summary (collection)》《php video tutorial》
The above is the detailed content of How to store the entire file data into an array line by line in php. For more information, please follow other related articles on the PHP Chinese website!