PHP 8.4.0 RC4 available for testing

stream_get_line

(PHP 5, PHP 7, PHP 8)

stream_get_lineGets line from stream resource up to a given delimiter

Descrizione

stream_get_line(resource $stream, int $length, string $ending = ""): string|false

Gets a line from the given handle.

Reading ends when length bytes have been read, when the non-empty string specified by ending is found (which is not included in the return value), or on EOF (whichever comes first).

This function is nearly identical to fgets() except in that it allows end of line delimiters other than the standard \n, \r, and \r\n, and does not return the delimiter itself.

Elenco dei parametri

stream

A valid file handle.

length

The maximum number of bytes to read from the handle. Negative values are not supported. Zero (0) means the default socket chunk size, i.e. 8192 bytes.

ending

An optional string delimiter.

Valori restituiti

Returns a string of up to length bytes read from the file pointed to by stream, o false in caso di fallimento.

Vedere anche:

  • fread() - Legge un file salvaguardando la corrispondenza binaria
  • fgets() - Prende una riga da un puntatore a file
  • fgetc() - Prende un carattere da un puntatore a file
add a note

User Contributed Notes 1 note

up
12
pk at ritm dot ru
14 years ago
fgets is faster but stream_get_line is more useful in a tcp server scripts.

when fgets reads some bytes from socket, where EOF is reached, it returns bool(false) same as stream_get_line

BUT if remote client drops connection, and server script will try to read some data with function fgets, function will return bool(false), and stream_get_line will return string(0) ""

so you can detect remote client disconnection with stream_get_line, and cannot with fgets
To Top