2012-02-06 53 views
0

我将如何取代这个:用正则表达式操纵IMG SRC -php

http://example.com/myfolder/files/year/month/imagename-widthxheight.imageextension 

这样:

http://example.com/myfolder/files/year/month/imagename-300x300.imageextension 

任何帮助吗?

+0

这部分 “宽x高” 不是文字,而是 “老” 的决议一样123x456,对不对? – djot 2012-02-06 11:15:06

+0

是的。它是可变的。用户上传不同尺寸的照片。系统产生300x300的拇指。调整大小和作物。 – marcieng 2012-02-07 09:10:24

回答

1

你可能想试试这个

// if your src has widthxheight are specified literally like that you may try 
echo preg_replace("/\W{0,1}(width).*(height)/i","-300x300","http://www.mysite.com/myfolder/files/year/month/imagename-widthxheight.imageextension"); 
// if your src has widthxheight are specified in int val you may try  
echo preg_replace("/\W{0,1}(\d{1,7}).*(\d{1,7})/i","-300x300","http://www.mysite.com/myfolder/files/year/month/imagename-123x456.imageextension"); 

的-300x300实际值将在您的实际需要而有所不同。所以我认为最好通过变量传递这些值。

+0

让我展示一些真正的内容:' Torinóiló - 都灵马 - 都灵atı,Tarr'ın2011年电影。 IMDB sayfası burada.' – marcieng 2012-02-07 09:51:58

+0

如果您想对全图像标签进行操作,那么您也可以使用此操作。 echo preg_replace(“/((\ d {1,7})x(\ d {1,7})\。)/” ,“300x300。”,'Torinóiló - 都灵马 - 都灵atı,Tarr'ın2011yapımı电影。'); – 2012-02-07 23:41:03

1

如何:

$new_img = preg_replace("~([^/]+)-widthxheight(\.[^.]+)$~i","$1-300x300$2", 
"http://www.mysite.com/myfolder/files/year/month/imagename-widthxheight.imageextension");