PHP正则替换文本的图片路径
做下笔记,正则替换文本的图片路径:
修改文本图片路径,一般使用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)