2012-05-27 253 views
11

鑑於以下字符串如何使用PHP從字符串中刪除子字符串?

http://thedude.com/05/simons-cat-and-frog-100x100.jpg 

我想用substrtrim(或任何你找到更合適)返回此

http://thedude.com/05/simons-cat-and-frog.jpg 

也就是說,除去-100x100。我需要的所有圖像都會在擴展名之前立即標記爲文件名的末尾。

似乎有對此迴應紅寶石和Python,但不是PHP /特定於我的需要。

How to remove the left part of a string?

Remove n characters from a start of a string

Remove substring from the string

有什麼建議?

+3

你打算硬編碼子字符串的值嗎?或者你想匹配任何-WIDTHxHEIGHT.ext形式的子字符串? –

+0

你介意鏈接到你找到的Ruby和Python版本嗎?那裏使用的技術可能是相關的。 – Ryan

+0

@minitech - 在OP – pepe

回答

24

如果你想匹配任何寬度/高度值:

$path = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg"; 

    // http://thedude.com/05/simons-cat-and-frog.jpg 
    echo preg_replace("/-\d+x\d+/", "", $path); 

演示:http://codepad.org/cnKum1kd

使用的模式是非常基本的:

/  Denotes the start of the pattern 
-  Literal - character 
\d+ A digit, 1 or more times 
x  Literal x character 
\d+ A digit, 1 or more times 
/ Denotes the end of the pattern
+4

謝謝JS - 我知道一個正則表達式即將到來! – pepe

+0

畢竟是說和做完了,這可能是多功能的解決方案,以防這些縮略圖最終改變大小 – pepe

+0

+ +1爲清晰的解釋正則表達式 – rdjs

3

如果-100x100是您嘗試從所有字符串中刪除的唯一字符,爲什麼不使用str_replace

$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg"; 
str_replace("-100x100", "", $url); 
+1

中增加了幾個鏈接完美thx!誰先回答? – pepe

14
$url = "http://thedude.com/05/simons-cat-and-frog-100x100.jpg"; 
$new_url = str_replace("-100x100","",$url); 
6
$url = str_replace("-100x100.jpg", '.jpg', $url); 

使用-100x100.jpg作爲防彈解決方案。

+0

但他需要擴展名保留,所以添加'.jpg'作爲重置價值 –

+0

MihaiStancu:剛剛編輯我的答案。謝謝。 – flowfree

相關問題