- echo "<br><br>";
- $str = "asdf{title}asdf{author}sadf{con}asfasdfasdfasf";
- $mode = "/{(.*)}/U";
- $flags1 = PREG_PATTERN_ORDER; //整个数组是二维数组,$arr1[0]是包括边界所构成匹配字符串的数组,$arr1[1]除去边界所构成的匹配字符串的数组;
- preg_match_all($mode,$str,$arr1,$flags1);
- print_r($arr1);
- echo "<br><br>";
- $flags2 = PREG_SET_ORDER; //整个数组是二维数组,$arr2[0][0]是第一个包括边界所构成的匹配的字符串,$arr2[0][1]是第一个除去边界所构成的匹配的字符串,之后的数组以此类推
- preg_match_all($mode,$str,$arr2,$flags2);
- print_r($arr2);
- echo "<br><br>";
- $flags3 = PREG_OFFSET_CAPTURE; //整个数组是三维数组,$arr3[0][0][0]是第一个包括边界所构成的匹配的字符串,$arr3[0][0][1]是到达第一个匹配字符串的边界的偏移量(边界不算在内),之后以此类推,$arr2[1][0][0]是第一个包括边界所构成的匹配的字符串,$arr3[1][0][1]是到达第一个匹配字符串的边界的偏移量(边界算在内);
- preg_match_all($mode,$str,$arr3,$flags3);
- print_r($arr3);
区别已经注明在注释中,通过下面的数组应该会把区别表明得更直观!~~
<br><br>Array
(
[0] => Array
(
[0] => {title}
[1] => {author}
[2] => {con}
)
[1] => Array
(
[0] => title
[1] => author
[2] => con
)
)
<br><br>Array
(
[0] => Array
(
[0] => {title}
[1] => title
)
[1] => Array
(
[0] => {author}
[1] => author
)
[2] => Array
(
[0] => {con}
[1] => con
)
)
<br><br>Array
(
[0] => Array
(
[0] => Array
(
[0] => {title}
[1] => 4
)
[1] => Array
(
[0] => {author}
[1] => 15
)
[2] => Array
(
[0] => {con}
[1] => 27
)
)
[1] => Array
(
[0] => Array
(
[0] => title
[1] => 5
)
[1] => Array
(
[0] => author
[1] => 16
)
[2] => Array
(
[0] => con
[1] => 28
)
)
)
本文出自 “小威的php快乐之路!~~” 博客,请务必保留此出处http://ywweini21.blog.51cto.com/3011722/768537