PHP正则替换文本的图片路径

lys2017年12月19日 1条评论

做下笔记,正则替换文本的图片路径:

修改文本图片路径,一般使用php preg_match_all 正则替换文本图片路径。

1.示例

<?php

preg_match_all('/(<img.+?src="?)([^"]+)("[^>]+>)/i','文本<img src="http://cdn.developzhe.com/home/dd.jpg" class="col-md-10"/>文本',$matchs);
var_dump($matchs); //输出

输出如下:

array (size=4)
  0 => 
    array (size=1)
      0 => string '<img src="home/dd.jpg" class="col-md-10"/>' (length=42)
  1 => 
    array (size=1)
      0 => string '<img src="' (length=10)
  2 => 
    array (size=1)
      0 => string 'http://cdn.developzhe.com/home/dd.jpg' (length=11)
  3 => 
    array (size=1)
      0 => string '" class="col-md-10"/>' (length=21)

可以看出2为图片url具体地址

2.实现

要替换的url   cdn.developzhe.com 替换为 www.developzhe.com

<?php

$current_url = "http://www.developzhe.com";
$pattern = '/(<img.+?src="?)(http:\/\/cdn\.developzhe\.com\/)([^"]+)("[^>]+>)/i';
$content = '文本<img src="http://cdn.developzhe.com/home/dd.jpg" class="col-md-10"/>文本';
preg_match_all($pattern,$content,$matchs);
var_dump($matchs);
$content = preg_replace( $pattern,'$1'.$current_url.'$3$4',$content);
var_dump($content);

输出如下:

D:\wamp64\www\test\index.php:10:array (size=5)
  0 => 
    array (size=1)
      0 => string '<img src="http://cdn.developzhe.com/home/dd.jpg" class="col-md-10"/>' (length=68)
  1 => 
    array (size=1)
      0 => string '<img src="' (length=10)
  2 => 
    array (size=1)
      0 => string 'http://cdn.developzhe.com/' (length=26)
  3 => 
    array (size=1)
      0 => string 'home/dd.jpg' (length=11)
  4 => 
    array (size=1)
      0 => string '" class="col-md-10"/>' (length=21)
      
      
 D:\wamp64\www\test\index.php:12:string '文本<img src="http://www.developzhe.com/home/dd.jpg" class="col-md-10"/>文本' (length=80)