PHP preg_match_all preg_match

请看代码

        $content = '今天天气不错,准备去郊游。<img class="t-image" src="http://www.g.com/1.jpg"/>今天还是不辞而别,没有什么也别的<img src="http://www.g.com/2a.jpg"/>花开多日无人看<img class="t-image" src="http://www.g.com/k.png"/>';
        $reg_tag = '/<img.*?\"([^\"]*(jpg|bmp|jpeg|gif|png)).*?>/';
        $ret = preg_match_all($reg_tag, $content, $match_result, PREG_PATTERN_ORDER);
        var_dump($match_result);

flag选项值:

1、PREG_PATTERN_ORDER:结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。

2、REG_SET_ORDER::结果排序为$matches[0]包含第一次匹配得到的所有匹配(包含子组), $matches[1]是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。
3、PREG_OFFSET_CAPTURE: 如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。
注意:PREG_PATTERN_ORDER 和 PREG_SET_ORDER 不能同时使用,如果没有指定排序的标记,则默认为 PREG_PATTERN_ORDER

// PREG_PATTERN_ORDER (默认值)
array (size=3)
  0 => 
    array (size=3)
      0 => string '<img class="t-image" src="http://www.g.com/1.jpg"/>' (length=51)
      1 => string '<img src="http://www.g.com/2a.jpg"/>' (length=36)
      2 => string '<img class="t-image" src="http://www.g.com/k.png"/>' (length=51)
  1 => 
    array (size=3)
      0 => string 'http://www.g.com/1.jpg' (length=22)
      1 => string 'http://www.g.com/2a.jpg' (length=23)
      2 => string 'http://www.g.com/k.png' (length=22)
  2 => 
    array (size=3)
      0 => string 'jpg' (length=3)
      1 => string 'jpg' (length=3)
      2 => string 'png' (length=3)

// REG_SET_ORDER
array (size=3)
  0 => 
    array (size=3)
      0 => string '<img class="t-image" src="http://www.g.com/1.jpg"/>' (length=51)
      1 => string 'http://www.g.com/1.jpg' (length=22)
      2 => string 'jpg' (length=3)
  1 => 
    array (size=3)
      0 => string '<img src="http://www.g.com/2a.jpg"/>' (length=36)
      1 => string 'http://www.g.com/2a.jpg' (length=23)
      2 => string 'jpg' (length=3)
  2 => 
    array (size=3)
      0 => string '<img class="t-image" src="http://www.g.com/k.png"/>' (length=51)
      1 => string 'http://www.g.com/k.png' (length=22)
      2 => string 'png' (length=3)

// PREG_OFFSET_CAPTURE
array (size=3)
  0 => 
    array (size=3)
      0 => 
        array (size=2)
          0 => string '<img class="t-image" src="http://www.g.com/1.jpg"/>' (length=51)
          1 => int 39
      1 => 
        array (size=2)
          0 => string '<img src="http://www.g.com/2a.jpg"/>' (length=36)
          1 => int 138
      2 => 
        array (size=2)
          0 => string '<img class="t-image" src="http://www.g.com/k.png"/>' (length=51)
          1 => int 195
  1 => 
    array (size=3)
      0 => 
        array (size=2)
          0 => string 'http://www.g.com/1.jpg' (length=22)
          1 => int 65
      1 => 
        array (size=2)
          0 => string 'http://www.g.com/2a.jpg' (length=23)
          1 => int 148
      2 => 
        array (size=2)
          0 => string 'http://www.g.com/k.png' (length=22)
          1 => int 221
  2 => 
    array (size=3)
      0 => 
        array (size=2)
          0 => string 'jpg' (length=3)
          1 => int 84
      1 => 
        array (size=2)
          0 => string 'jpg' (length=3)
          1 => int 168
      2 => 
        array (size=2)
          0 => string 'png' (length=3)
          1 => int 240
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值