PHP Conference Nagoya 2025

stream_get_line

(PHP 5, PHP 7, PHP 8)

stream_get_lineLit une ligne dans un flux

Description

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

stream_get_line() lit une ligne dans la ressource handle.

La lecture se termine quand length octets ont été lus, quand la chaîne non-vide spécifiée par ending a été rencontrée (mais ne sera pas inclue dans la valeur retournée), ou si EOF survient : n'importe lequel des trois qui survient en premier.

Cette fonction est presque identique à fgets() hormis le fait qu'elle permet d'utiliser un délimiteur de ligne différent des caractères standards de \n, \r et \r\n, et ne retourne pas le délimiteur lui-même.

Liste de paramètres

stream

Une ressource valide de fichier.

length

Le nombre maximum d'octets à lire depuis le gestionnaire. Les valeurs négatives ne sont pas supportées. Zéro (0) signifie la taille de chunk de socket par défaut, i.e. 8192 octets.

ending

Un délimiteur de chaîne optionnel.

Valeurs de retour

stream_get_line() lit une ligne de taille maximale length dans le flux stream ou false si une erreur survient.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fgets() - Récupère la ligne courante à partir de l'emplacement du pointeur sur fichier
  • fgetc() - Lit un caractère dans un fichier
add a note

User Contributed Notes 1 note

up
12
pk at ritm dot ru
15 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