2012-07-27 3 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 

에있는 이미지가 필요 (예, 그것은 항상 존재합니다.)

이 쉽게 그 것이다 항상 트리플 자리였다. "- #의 X 번호" 그래서 난 -100x99 및 -875x200을 찾을 수 있습니다하지만 경우에 따라서는

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

또는

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

을 찾을 수있는 방법이 있나요 될 수 있는가?

답변

2

이 작업

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

Upvoted에 대한 정규식이 필요합니다, 감사합니다! 그것은 완벽하게 작동합니다! 6 분 안에 받아 들일 것입니다 :) - 그러나, 저는 정규 표현식에 대해 많이 알지 못합니다. 따라서이 코드를 너무 많이 읽을 수는 없습니다 ... jpg 나 gif라면? – Xhynk

+1

@AlexDemchak 그런 다음 정규식을 다음과 같이 만듭니다.'/ - \ d + x \ d + (\. (png | jpg | gif)) $/i'. i를 추가하여 대소 문자를 구분하지 않습니다 (그래서 .PNG도 일치합니다). –

+1

@Robin - 내부 그룹을 캡처하지 않는 그룹으로 만들고 싶을 수도 있습니다 :'/ - \ d + x \ d + (\\ (png | jpg | gif)) $/i' – nickb

관련 문제