PhpDig.net

What is PhpDig?
PhpDig is a PHP MySQL based
Web Spider & Search Engine.




preg_match_all

Name

preg_match_all — Finds all matches for the supplied pattern and stores them in the supplied array.

Synopsis

int preg_match_all(pattern, subject, matches[, order]);
string pattern: Regex pattern to match
string subject: String to search using the pattern
array matches: Array in which to store the search results
int order (optional): Flag specifying the ordering of results

Returns

Number of full pattern matches found

Description

This function tries to find all the matches for the regular expression pattern in the supplied subject string. Upon a successful search, the previous contents of matches are overwritten with the search results. The matches parameter should be a valid variable, such as$matches, since the function forces it to be passed by reference.

The structure of the search results in matches is specified by the order parameter. order can be either of the following two named constants:

PREG_PATTERN_ORDER

Orders the results so that $matches[0] is an array containing all of the subject string pieces matched by the full pattern, and each subsequent entry is an array containing matches corresponding to the parenthesized subpatterns.

$input = "the work starts at 9:00 am and ends at 6:30 pm";
$num = preg_match_all('/(\d+:\d+)\s*(am|pm)/', $input, $match, PREG_PATTERN_ORDER);
echo "full matches:     " . implode(', ', $match[0]);
echo "time matches:     " . implode(', ', $match[1]);
echo "meridian matches: " . implode(', ', $match[2]);
This example produces the following output:
full matches:     9:00 am, 6:30 pm
time matches:     9:00, 6:30
meridian matches: am, pm
$match[0] is an array of strings that matched the full pattern, time, and meridian; $match[1] is an array of matched times; and $match[2] is an array of just the meridians.

PREG_SET_ORDER

Orders the results so that $matches[0] is an array of subject string pieces captured by the full pattern and subpatterns on the first match, $matches[1] is an array of pieces captured on the second match, and so on.

$input = "the work starts at 9:00 am and ends at 6:30 pm";
$num = preg_match_all('/(\d+:\d+)\s*(am|pm)/', $input, $match, PREG_SET_ORDER);
for ($i = 0; $i < count($match); $i++) {
   echo "full match:     " . $match[$i][0] . "\n";
   echo "time match:     " . $match[$i][1] . "\n";
   echo "meridian match: " . $match[$i][2] . "\n\n";
}
This example produces the following output:
full match:     9:00 am
time match:     9:00
meridian match: am

full match:     6:30 pm
time match:     6:30
meridian match: pm
In this case, $match[0] is an array containing the pieces captured on the first match, and so on.

If order is omitted, it defaults toPREG_PATTERN_ORDER.

Version

Existing since version 3.0.9

Example

Example 1130. Split a string of Hebrew and non-Hebrew characters into an array of words and non-words

<?php
$mixed = ":ƒ­ƒƒƒƒƒƒƒƒ ƒƒƒƒƒƒ ƒƒƒƒƒ
,ƒƒƒƒƒƒƒ ƒ­ƒƒƒ ƒƒƒƒƒƒ (English Text) ƒƒƒƒƒƒƒ ƒƒƒƒƒƒ ƒ­ƒƒƒƒƒƒ ƒƒƒ
.ƒƒƒƒƒƒƒ ƒ ƒ­ƒƒƒƒƒƒƒƒ ƒƒƒ ƒƒ (More English Text) !ƒƒƒƒƒƒƒ ƒƒƒƒƒƒ ƒƒƒƒƒ ƒ ƒ";

// Hebrew characters have hex values between E0 and FB
preg_match_all ("/[\xE0-\xFB]+|[^[:word:]]+|\w+/", $mixed, $matches);

print_r ($matches);
?>
The example produces the following output (remaining 36 entries removed for brevity):
Array
(
    [0] => Array
        (
            [0] => :
            [1] => ƒ­ƒƒƒƒƒƒƒƒ
            [2] =>  
            [3] => ƒƒƒƒƒƒ
            [4] =>  
            [5] => ƒƒƒƒƒ
            ...





PHP Functions Essential Reference. Copyright © 2002 by New Riders Publishing (Authors: Zak Greant, Graeme Merrall, Torben Wilson, Brett Michlitsch). This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). The authors of this book have elected not to choose any options under the OPL. This online book was obtained from http://www.fooassociates.com/phpfer/ and is designed to provide information about the PHP programming language, focusing on PHP version 4.0.4 for the most part. The information is provided on an as-is basis, and no warranty or fitness is implied. All persons and entities shall have neither liability nor responsibility to any person or entity with respect to any loss or damage arising from the information contained in this book.

Powered by: vBulletin Version 3.0.7
Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Copyright © 2001 - 2005, ThinkDing LLC. All Rights Reserved.