Description
int
preg_match
( string pattern, string subject [, array matches])
preg_match(
)
analyse
subject
pour
trouver
l
'expression
pattern
.
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.
.
preg_match(
)
retourne
TRUE
si
la
recherche
réussit
,
et
FALSE
sinon
(notamment
en
cas
d'erreur
)
.
Exemple
1
.
Extraction
d'
un
numéro
de
page
d
'une
chaîne
.
?php
if
(
preg_match("
/
page\s+#(\d+)
/
i"
,
"Aller
à
la
page
numéro
9
."
,
$parts)
)
print
"La
page
suivante
est
$parts[1]"
;
else
print
"Page
introuvable
."
;
?
|
|
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
.")
)
{
print
"Un
mot
a
été
trouvé
."
;
}
else
{
print
"Un
mot
n'a
pas
été
trouvé
."
;
}
if
(preg_match
("
/
\bweb\b
/
i"
,
"PHP
est
le
meilleur
langage
de
script
pour
les
webagency
.")
)
{
print
"Un
mot
a
été
trouvé
."
;
}
else
{
print
"Un
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.html"
,
$matches)
;
$host
=
$matches[2]
;
/
/
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"
;
?
|
|
Cet exemple va afficher :
Le nom de domaine est : php.net
Voir aussi
preg_match_all()
,
preg_replace()
et
preg_split()
.