PHP 正规函数 --preg_match_all 匹配所有

 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 

转载于:https://www.cnblogs.com/voswin/articles/1497290.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值