Rumah > pembangunan bahagian belakang > tutorial php > 求替换全局img图片的正则表达式

求替换全局img图片的正则表达式

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-23 13:54:49
asal
1052 orang telah melayarinya

如题
现在有一字符串是

$content = '

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test

';

想要将这字符里面的 images/tmp 都替换成 images/pub

本人已经写了一个函数
	public static function replace_img_publish_path($content){		$pattern='/(<[img|IMG].+src=\"?.+)(images\/tmp\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/';		$replacement="\${1}images/pub/\${3}";		print  preg_replace($pattern, $replacement, $content);		exit;	}
Salin selepas log masuk


输出结果为

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test



只替换了最后一个img标签

如何才能全部都替换?


回复讨论(解决方案)

$content = '<p><img  src="http://localhost:8080/story/images/tmp/1403530150545.jpg"   style="max-width:90%" alt="求替换全局img图片的正则表达式" ><img  src="http://localhost:8080/story/images/tmp/1403530147265.jpg"   style="max-width:90%" alt="求替换全局img图片的正则表达式" >test</p>';$content = preg_replace('#(?<=src="http://localhost:8080/story/images/)tmp/#', 'pub/', $content);echo $content;
Salin selepas log masuk

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test


你没有防止贪婪匹配。

$pattern='/(<[img|IMG].+?src=\"?.+?)(images\/tmp\/)(.+?\.(jpg|gif|bmp|bnp|png)\"?.+?>)/';

你写的方法加一个参数U就可以了。
加上U,将懒惰匹配 变成 贪婪匹配。

$pattern='/(<[img|IMG].+src=\"?.+)(images\/tmp\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/ U';

测试例子:

$content = '<p><img  src="http://localhost:8080/story/images/tmp/1403530150545.jpg"   style="max-width:90%" alt="求替换全局img图片的正则表达式" ><img  src="http://localhost:8080/story/images/tmp/1403530147265.jpg"   style="max-width:90%" alt="求替换全局img图片的正则表达式" >test</p>';replace_img_publish_path($content);function replace_img_publish_path($content){    $pattern='/(<[img|IMG].+src=\"?.+)(images\/tmp\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/U';    $replacement="\${1}images/pub/\${3}";    print  preg_replace($pattern, $replacement, $content);    exit;}
Salin selepas log masuk


替换后:

求替换全局img图片的正则表达式求替换全局img图片的正则表达式test

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan