2012-07-27 46 views
3

所以我抓住一個字符串(通常是一個圖像位置)。理想情況下,我希望它永遠是取代PHP中類似但不同的字符串部分?

http://www.mydomain.com/images/cool-nifty-image.png 

但是,有時並不總是這樣。有時它是

http://www.mydomain.com/images/cool-lame-image-300x300.png 

與300x300是相關的大小。在上面的例子中,我需要位於

http://www.mydomain.com/images/cool-lame-image.png 

形象(是的,它始終存在。)

這將是容易的它,它一直是三位數。但是,有時也可以是

http://www.mydomain.com/images/cool-lame-image-300x99.png 

http://www.mydomain.com/images/cool-lame-image-99x99.png 

有沒有辦法找到「 - #X#」這樣我就可以找到-100x99和-875x200?

回答

2

你需要一個正則表達式完成這個任務

$img = preg_replace('/-\d+x\d+(\.png)$/', '\1', $img); 
+0

Upvoted,謝謝!它完美的工作!將在6分鐘內接受:) - 但是,我對正則表達式瞭解不多,因此無法破譯太多的代碼......如果它是jpg或gif呢? – Xhynk 2012-07-27 22:55:35

+1

@AlexDemchak然後使正則表達式如下所示:'/ - \ d + x \ d +(\。(png | jpg | gif))$/i'。添加我,所以它是不區分大小寫的(所以.PNG也匹配)。 – 2012-07-27 22:57:37

+1

@Robin - 你可能想讓內部的分組成爲一個非捕獲組:'/ - \ d + x \ d +(\。(?: png | jpg | gif))$/i' – nickb 2012-07-27 23:10:06