2014-05-09 89 views
-4
亚马逊

图片亚马逊图像的URL网址具有的是这样的:preg_replace函数在PHP

http://ecx.images-amazon.com/images/I/911pRnX5a0L.SL1500.jpg 

注意额外的部分._SL1500,这可以在数量上有所不同,另一个例子是.SL150

我希望能够剥离了这一点,所以我们去的:

http://ecx.images-amazon.com/images/I/911pRnX5a0L.SL????.jpg 

只是:

http://ecx.images-amazon.com/images/I/911pRnX5a0L.jpg 

我如何能做到这一点用预浸任何想法取代或类似PHP?

+0

使用是这样的:'的preg_replace( '?/ \(SL \ d {4})(= \ JPG $)/', '',$海峡);'。 –

回答

0

使用这个表达式~\.SL(.*?)\.~

echo $str = preg_replace("~\.SL(.*?)\.~",".", $str); 

OUTPUT :

http://ecx.images-amazon.com/images/I/911pRnX5a0L.jpg 
+0

我想你误解了这个问题。 OP想要从URL中删除'.SL ????'部分。 –

0

您也可以使用substr,这将是这个样子:

$test = "http://ecx.images-amazon.com/images/I/911pRnX5a0L.SL1500.jpg"; 

$test2 = substr($test,0,-11); 

echo "$test2.jpg"; 

输出将是:

http://ecx.images-amazon.com/images/I/911pRnX5a0L.jpg

(如果您确定所有图像将是.JPG只会工作)

0

regex作用似乎以适应。

preg_replace('§\.\w+\d+§', '', $url); 
0

Demo

$u = 'http://ecx.images-amazon.com/images/I/911pRnX5a0L.SL1500.jpg'; 
$url = preg_replace('/SL\d+\./','',$u); 
echo $url ;