# deflate_init

(PHP 7, PHP 8)

deflate_init — Initialise un contexte de compressage incrémentiel

### Description

deflate_init(int `$encoding`, array `$options` = []): DeflateContext|false

Initialise un contexte de compressage incrémentiel en utilisant le `encoding` spécifié.

Il est à noter que l'option `window` ne définit ici que la taille de la fenêtre de l'algorithme, différemment des filtres zlib où le même paramètre définit également l'encodage à utiliser ; l'encodage doit être défini avec le paramètre `encoding`.

Limitation : il n'y a actuellement aucun moyen de définir les informations d'en-tête sur un flux compressé GZIP, qui sont définies comme suit : signature GZIP (`\x1f\x8B`) ; méthode de compression (`\x08` == DEFLATE) ; 6 octets nuls ; le système d'exploitation défini sur le système actuel (`\x00` = Windows, `\x03` = Unix, etc.).

### Liste de paramètres

`encoding`

  Une des constantes `ZLIB_ENCODING_*`.

`options`

  Un tableau associatif qui peut contenir les éléments suivants :

  level

    Le niveau de compression dans la plage -1..9 ; par défaut -1.

  memory

    Le niveau de mémoire de compression dans la plage 1..9 ; par défaut 8.

  window

    La taille de la fenêtre zlib (logarithmique) dans la plage `8`..`15`; par défaut `15`. zlib change une taille de fenêtre de `8` à `9`, et à partir de zlib 1.2.8 échoue avec un avertissement, si une taille de fenêtre de `8` est demandée pour `ZLIB_ENCODING_RAW` ou `ZLIB_ENCODING_GZIP`.

  strategy

    Une des `ZLIB_FILTERED`, `ZLIB_HUFFMAN_ONLY`, `ZLIB_RLE`, `ZLIB_FIXED` ou `ZLIB_DEFAULT_STRATEGY` (par défaut).

  dictionary

    Un string ou un array de strings du dictionnaire prédéfini (par défaut : aucun dictionnaire prédéfini).

### Valeurs de retour

Renvoie un contexte de compressage (`zlib.deflate`) sur succès, ou `false` si une erreur survient.

### Erreurs / Exceptions

Si une option invalide est passée à `options` ou que le contexte n'a pas pu être créé, une erreur de niveau `E_WARNING` est générée.

### Historique

Version | Description
--- | ---
8.0.0 | En cas de succès, cette fonction renvoie désormais une instance de DeflateContext ; précédemment, une resource était renvoyée.

### Voir aussi

- deflate_add() - Compresse des données de manière incrémentielle
- inflate_init() - Initialise un contexte de décompressage incrémentiel