- 95% des demandes d'aide de nos clients sont traités en moins de 2 heures !
- Nous sommes toujours en pleine innovation !
- Nous améliorons sans cesse la qualité de nos services !
Si matches
est fourni, il sera rempli par
les résultats de la recherche. $matches[0] contiendra le
texte qui satisfait le masque complet, $matches[1] contiendra
le texte qui satisfait la première parenthèse capturante,
etc.
flags
Le paramètre flags
peut prendre l'une des valeurs
suivantes :
PREG_OFFSET_CAPTURE
Si cette option est activée, toutes les sous-chaînes qui satisfont
le masque seront aussi identifiées par leur offset. Notez que cela
modifie le format de la valeur retournée , puisque chaque élément
de réponse devient un tableau contenant la sous-chaîne résultat,
à l'index 0 dans la chaîne subject
à l'index 1.
offset
Normalement, la recherche commence au début de la chaîne
subject
. Le paramètre optionnel
offset
peut être utilisé pour spécifier
une position pour le début de la recherche (en octets).
Note:
Utiliser le paramètre offset
ne revient pas
à passer substr($subject, $offset) à
preg_match_all() à la place de la chaîne
subject
, car
pattern
peut contenir des assertions comme
^, $ ou
(?<=x).
Comparez :
preg_match() retourne le nombre de fois où le
masque pattern
a été trouvé. Cela peut aller de
0 (pas de solution) à un 1 car preg_match() s'arrête
dès qu'elle a trouvé une première solution. preg_match_all(),
au contraire, va continuer jusqu'à la fin de la chaîne subject
.
preg_match() retourne FALSE si une erreur survient.
Historique
Version
Description
4.3.3
Le paramètre offset
a été ajouté.
4.3.0
Le drapeau PREG_OFFSET_CAPTURE a été ajouté.
4.3.0
Le paramètre flags
a été ajouté.
Exemples
Exemple #1 Trouve la chaîne "php"
<?php // Le "i" après le délimiteur du pattern indique que la recherche ne sera pas sensible à la casse if (preg_match("/php/i", "PHP est le meilleur langage de script du web.")) { echo "Un résultat a été trouvé."; } else { echo "Aucun résultat n'a été trouvé."; } ?>
Exemple #2 Trouve le mot "web"
<?php /* \b, dans le masque, indique une limite de mot, de façon à ce que le mot "web" uniquement soit repéré, et pas seulement des parties de mots comme dans "webbing" ou "cobweb" */ if (preg_match("/\bweb\b/i", "PHP est le meilleur langage de script du web.")) { echo "Le mot a été trouvé."; } else { echo "Le mot n'a pas été trouvé."; }
if (preg_match("/\bweb\b/i", "PHP est le meilleur langage de script du web.")) { echo "Le mot a été trouvé."; } else { echo "Le mot n'a pas été trouvé."; } ?>
Exemple #3 Lire un nom de domaine dans une URL
<?php // repérer le nom de l'hôte dans l'URL preg_match('@^(?:http://)?([^/]+)@i', "http://www.php.net/index.php", $matches); $host = $matches[1];
// repérer les deux derniers segments du nom de l'hôte preg_match('/[^.]+\.[^.]+$/', $host, $matches); echo "Le nom de domaine est : {$matches[0]}\n"; ?>
N'utilisez pas preg_match() si vous voulez uniquement
savoir si une chaîne est contenue dans une autre.
Utilisez dans ce cas les fonctions
strpos() ou strstr(),
qui sont beaucoup plus rapides.