PHP Conference Nagoya 2025

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Constantes PREG
Constantes Description À partir de
PREG_PATTERN_ORDER (int) Ordonne les résultats de façon à ce que $matches[0] contienne les résultats qui correspondent au masque entier, $matches[1] ceux qui correspondent à la première parenthèse capturante et ainsi de suite. Cette constante est utilisée avec preg_match_all().  
PREG_SET_ORDER (int) Les résultats sont classés de telle façon que $matches[0] contient la première série de résultat, $matches[1] la deuxième, etc. Cette constante est utilisée avec preg_match_all().  
PREG_OFFSET_CAPTURE (int) Voir la description de PREG_SPLIT_OFFSET_CAPTURE.  
PREG_SPLIT_NO_EMPTY (int) Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split().  
PREG_SPLIT_DELIM_CAPTURE (int) Si cette option est activée, les expressions entre parenthèses entre les délimiteurs de masques seront aussi capturées et retournées. Cette constante est utilisée avec preg_split().  
PREG_SPLIT_OFFSET_CAPTURE (int) Si cette constante est utilisée avec preg_split(), l'offset de début de résultat sera retourné, en plus de la chaîne résultat. Notez que cela change la nature du résultat retourné en un tableau contenant une chaîne à l'offset 0 et une chaîne contenant un offset à l'offset 1  
PREG_UNMATCHED_AS_NULL (int) Cette contante demande à preg_match() et preg_match_all() d'include les sous-masques sans correspondance dans $matches avec une valeur à null. Sans cette contante, les sous-masques sans correspondance sont retourné avec une chaîne vide, comme si la correspondance était vide. Définir cette constante permet de distinguer ces deux cas. 7.2.0
PREG_NO_ERROR (int) Retourné par la fonction preg_last_error() s'il n'y a pas d'erreur. 5.2.0
PREG_INTERNAL_ERROR (int) Retourné par la fonction preg_last_error() s'il y a une erreur interne PCRE. 5.2.0
PREG_BACKTRACK_LIMIT_ERROR (int) Retourné par la fonction preg_last_error() si backtrack limit a été atteint. 5.2.0
PREG_RECURSION_LIMIT_ERROR (int) Retourné par la fonction preg_last_error() si la limite de récurrence a été atteint. 5.2.0
PREG_BAD_UTF8_ERROR (int) Retourné par la fonction preg_last_error() si la dernière erreur est du à une malformation des données UTF-8 (uniquement lors de l'exécution d'une expression en mode UTF-8). 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR (int) Retourné par la fonction preg_last_error() si l'offset ne correspond pas au début d'un point valide UTF-8 (uniquement lorsque l'on exécute une expression enmode UTF-8). 5.3.0
PREG_JIT_STACKLIMIT_ERROR (int) Retourné par preg_last_error() si la dernière fonction PCRE a échoué en raison de la limite de la pile JIT. 7.0.0
PCRE_VERSION (int) Version PCRE ainsi que la date de publication (i.e. "7.0 18-Dec-2006"). 5.2.4
PCRE_VERSION_MAJOR (int) Numéro de version majeure de PCRE.  
PCRE_VERSION_MINOR (int) Numéro de version mineure de PCRE.  
PCRE_JIT_SUPPORT (bool) Indique si le support JIT de PCRE est disponible.  
PREG_GREP_INVERT (int) Retourne les éléments qui ne correspondent pas à un modèle donné.  
add a note

User Contributed Notes 2 notes

up
27
erutan409 at hotmail dot com
9 years ago
PREG_PATTERN_ORDER: 1
PREG_SET_ORDER: 2
PREG_OFFSET_CAPTURE: 256
PREG_SPLIT_NO_EMPTY: 1
PREG_SPLIT_DELIM_CAPTURE: 2
PREG_SPLIT_OFFSET_CAPTURE: 4
PREG_NO_ERROR: 0
PREG_INTERNAL_ERROR: 1
PREG_BACKTRACK_LIMIT_ERROR: 2
PREG_RECURSION_LIMIT_ERROR: 3
PREG_BAD_UTF8_ERROR: 4
PREG_BAD_UTF8_OFFSET_ERROR: 5
PCRE_VERSION: %YOUR_VERSION_NUMBER%
up
16
Robert
8 years ago
The new PREG_JIT_STACKLIMIT_ERROR constant introduced with PHP 7.0.0 has got a value of 6.

I experienced this error code when parsing a 112KB file. preg_match_all failed with this error. Interesting was: The matches array contained some entries, but not all as the command failed (I missed to check the return value).

Unfortunately you can not configure the stack-size of the PCRE JIT. The only way out was - at least for me - to disable the PCRE JIT via php.ini (pcre.jit=0).
To Top