用于PHP中的Amazon图像URL的preg_replace

时间:2014-05-09 08:22:52

标签: php regex

亚马逊上的图片网址如下:

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中的preg替换或类似方法执行此操作的任何想法?

4 个答案:

答案 0 :(得分:1)

我的代码:

<?php
//amazon url
$url = 'http://ecx.images-amazon.com/images/I/911pRnX5a0L.SL150.jpg';

$pattern = '/\bSL[0-9]+\./i';
$url = preg_replace( $pattern, '', $url );

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

答案 1 :(得分:0)

使用此正则表达式~\.SL(.*?)\.~

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

<强> OUTPUT :

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

答案 2 :(得分: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时才会有效)

答案 3 :(得分:0)

Demo

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