Description
int
preg_match_all
( string pattern, string subject, array matches [, int order])
Searches
subject
for
all
matches
to
the
regular
expression
given
in
pattern
and
puts
them
in
matches
in
the
order
specified
by
order
.
order
can
be
one
of
two
things
:
- PREG_PATTERN_ORDER
-
- PREG_SET_ORDER
-
This example will produce:
In this case, $matches[0] is the first set of matches, and
$matches[0][0] has text matched by full pattern,
$matches[0][1] has text matched by first subpattern and so
on. Similarly, $matches[1] is the second set of matches, etc.
If
order
is
not
specified
,
it
is
assumed
to
be
PREG_PATTERN_ORDER
.
דוגמה
1
.
preg_match_all
(
"
/
\(
?
(\d{3})
?
\)
?
(
?(1
)
[\-\s
]
)
\d{3}-\d{4}
/
x"
,
"Call
555-1212
or
1-800-555-1212"
,
$phones)
;
|
|
דוגמה
2
.
/
/
The
\\2
is
an
example
of
backreferencing
.
The
extra
backslash
is
/
/
required
because
the
string
is
in
double
quotes
.
$html
=
"
b
bold
text
/
b
a
href=howdy.html
click
me
/
a
;
preg_match_all
("
/
(
([\w]+)[^
]*
)(.*)
(
\
/
\\2
)
/
"
,
$html
,
$matches)
;
for
($i=0
;
$i
count($matches[0])
;
$i++
)
{
echo
"matched
:
".$matches[0][$i]
."\n"
;
echo
"part
1
:
".$matches[1][$i]
."\n"
;
echo
"part
2
:
".$matches[3][$i]
."\n"
;
echo
"part
3
:
".$matches[4][$i]
."\n\n"
;
}
|
|
This example will produce: