1 preg_match_all
2 preg_match_all -- 进行全局正则表达式匹配
3 int preg_match_all ( string pattern, string subject, array matches [, int flags])
4 在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 flags 指定的顺序放到 matches 中。
5 搜索到第一个匹配项之后,接下来的搜索从上一个匹配项末尾开始。
6
7
8 近期学习dedecms系统,这个系统里面的图片集是把所有的图片都放在一个字段里面的,
9 形如:
10 {dede:pagestyle maxwidth='800' pagepicnum='12' ddmaxwidth='200' row='3' col='3' value='2'/}
11 {dede:img ddimg='/xf/cms/uploads/userup/4/1240135213-5031.jpg' text='1' width='204' height='62'} /xf/cms/uploads/userup/4/1240135213-5031.jpg {/dede:img}
12 {dede:img ddimg='/xf/cms/uploads/userup/4/1240135213-BW.jpg' text='2' width='862' height='654'} /xf/cms/uploads/userup/4/1240135213-BW.jpg {/dede:img}
13 要把所有的图片的url都给匹配出来,这就需要用preg_match_all这个强大的函数.php程序如下:
14
15 <?php
16 $str = "{dede:pagestyle maxwidth='800' pagepicnum='12' ddmaxwidth='200' row='3' col='3' value='2'/}
17 {dede:img ddimg='/xf/cms/uploads/userup/4/1240135213-5031.jpg' text='1' width='204' height='62'} /xf/cms/uploads/userup/4/1240135213-5031.jpg {/dede:img}
18 {dede:img ddimg='/xf/cms/uploads/userup/4/1240135213-BW.jpg' text='2' width='862' height='654'} /xf/cms/uploads/userup/4/1240135213-BW.jpg {/dede:img}
19 ";
20 preg_match_all("/ddimg=\'(.*?)\'/",$str,$match);
21 print_r($match);
22 ?>
23 打印出的结果如下:
24 Array
25 (
26 [0] => Array
27 (
28 [0] => ddimg='/xf/cms/uploads/userup/4/1240135213-5031.jpg'
29 [1] => ddimg='/xf/cms/uploads/userup/4/1240135213-BW.jpg'
30 )
31
32 [1] => Array
33 (
34 [0] => /xf/cms/uploads/userup/4/1240135213-5031.jpg
35 [1] => /xf/cms/uploads/userup/4/1240135213-BW.jpg
36 )
37
38 )
39 可以看到array[1]即为所求的结果的数组。
40
2 preg_match_all -- 进行全局正则表达式匹配
3 int preg_match_all ( string pattern, string subject, array matches [, int flags])
4 在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 flags 指定的顺序放到 matches 中。
5 搜索到第一个匹配项之后,接下来的搜索从上一个匹配项末尾开始。
6
7
8 近期学习dedecms系统,这个系统里面的图片集是把所有的图片都放在一个字段里面的,
9 形如:
10 {dede:pagestyle maxwidth='800' pagepicnum='12' ddmaxwidth='200' row='3' col='3' value='2'/}
11 {dede:img ddimg='/xf/cms/uploads/userup/4/1240135213-5031.jpg' text='1' width='204' height='62'} /xf/cms/uploads/userup/4/1240135213-5031.jpg {/dede:img}
12 {dede:img ddimg='/xf/cms/uploads/userup/4/1240135213-BW.jpg' text='2' width='862' height='654'} /xf/cms/uploads/userup/4/1240135213-BW.jpg {/dede:img}
13 要把所有的图片的url都给匹配出来,这就需要用preg_match_all这个强大的函数.php程序如下:
14
15 <?php
16 $str = "{dede:pagestyle maxwidth='800' pagepicnum='12' ddmaxwidth='200' row='3' col='3' value='2'/}
17 {dede:img ddimg='/xf/cms/uploads/userup/4/1240135213-5031.jpg' text='1' width='204' height='62'} /xf/cms/uploads/userup/4/1240135213-5031.jpg {/dede:img}
18 {dede:img ddimg='/xf/cms/uploads/userup/4/1240135213-BW.jpg' text='2' width='862' height='654'} /xf/cms/uploads/userup/4/1240135213-BW.jpg {/dede:img}
19 ";
20 preg_match_all("/ddimg=\'(.*?)\'/",$str,$match);
21 print_r($match);
22 ?>
23 打印出的结果如下:
24 Array
25 (
26 [0] => Array
27 (
28 [0] => ddimg='/xf/cms/uploads/userup/4/1240135213-5031.jpg'
29 [1] => ddimg='/xf/cms/uploads/userup/4/1240135213-BW.jpg'
30 )
31
32 [1] => Array
33 (
34 [0] => /xf/cms/uploads/userup/4/1240135213-5031.jpg
35 [1] => /xf/cms/uploads/userup/4/1240135213-BW.jpg
36 )
37
38 )
39 可以看到array[1]即为所求的结果的数组。
40