fgets() function reads a line from the file pointer.
Syntax
fgets(file,length)
Parameters | Description |
---|---|
file | Required. Specifies the file to be read. |
length | Optional. Specifies the number of bytes to read. The default is 1024 bytes. |
Description
Reads a line from the file pointed to by file and returns a string of length at most length - 1 byte . Stops when a newline character (included in the return value), EOF, or length - 1 bytes has been read (whichever occurs first). If length is not specified, it defaults to 1K, or 1024 bytes.
If it fails, return false.
Tips and Notes
Note: The length parameter becomes optional as of PHP 4.2.0. If omitted, the length of the line is assumed to be 1024 bytes. Starting with PHP 4.3, omitting length will continue reading from the stream until the end of the line. If most of the lines in the file are larger than 8 KB, specifying the maximum line length in the script is more efficient in utilizing resources.
Note: Starting from PHP 4.3, this function can be safely used in binary files. Earlier versions did not.
Note: If you encounter that PHP cannot recognize the line ending characters of Macintosh files when reading files, you can activate the auto_detect_line_endings runtime configuration option.
The following is an example of using the PHP fgets() function to read a text file line by line. The code is as follows
$handle = @fopen("D:/public/test.txt", "r"); if ($handle) { while (!feof($handle)) { $str = fgets($handle, 4096); //$str = '#主单词1#'; if(preg_match('/#(.+)#/',$str,$matches)){ $di_word = $matches[1]; $di_word = mysql_escape_string($di_word); $sql = " SELECT di_id FROM `du_index` WHERE di_word = '{$di_word}'"; $result = mysql_query($sql); $row = mysql_fetch_row($result); $di_id = $row[0]; if (count($dy_word)>0){ $sql = " INSERT INTO `du_yun` (`di_id`,`di_word`,`dy_word`,`dy_description`,`dy_status`,`dy_time`) VALUES"; for ($i=0;$i<count($dy_word);$i++){ $sql .= " ('{$di_id_1}','{$di_word_1}','{$dy_word[$i]}','{$dy_description[$i]}','1',now()),"; } $result = mysql_query(substr($sql,0,-1).';'); if ($result){}else{ echo $sql . '<br />'; } } $di_id_1 = $di_id; $di_word_1 = $di_word; $dy_word = $dy_description = array(); $sql = ''; continue; }; //$str = '[志願者]參[與]人員'; if (preg_match('/^\[(.+)\](.+)$/',$str,$matches)){ $dy_word[] = trim($matches[1]); $dy_description[] = trim($matches[2]); continue; } } if (count(dy_word)>0){ $sql = " INSERT INTO `du_yun` (`di_id`,`di_word`,`dy_word`,`dy_description`,`dy_status`,`dy_time`) VALUES"; for ($i=0;$i<count($dy_word);$i++){ $sql .= " ('{$di_id_1}','{$di_word_1}','{$dy_word[$i]}','{$dy_description[$i]}','1',now()),"; } $result = mysql_query(substr($sql,0,-1).';') or die(mysql_error()); if ($result){}else{ echo $sql . '<br />'; } } fclose($handle); }
The above is the detailed content of php fgets() function usage example code. For more information, please follow other related articles on the PHP Chinese website!