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 
posted on 2009-06-05 22:29  睿达团队  阅读(2803)  评论(0编辑  收藏  举报