2013-02-13 64 views
2

删除分辨率字符串我有以下图片网址:在默认情况下它的分辨率600x417.png即包含从图像的URL在PHP

http://www.example.org/wp-content/blogs.dir/29/files/2013/02/Personalized-Results-Asterisk-600x417.png 

这里的URL。我想从此图片网址中移除此分辨率。

图像URL的最终输出应该是这样的:

http://www.example.org/wp-content/blogs.dir/29/files/2013/02/Personalized-Results-Asterisk.png 

我怎样才能做到这一点?

+0

编辑的文件名:^(.*?)-\d+x\d+\.([^/]+)$

替换为?不确定你想要做什么的目的,所以我不知道尝试和回答的方向。 – Jon 2013-02-13 05:14:27

+0

@Jon:我只想从该图片url中删除该分辨率字符串,即(600x417),以便它将采用原始图片分辨率而不是600x417。 – Sky 2013-02-13 05:16:05

+0

噢,好的,对于下面的答案,使用'/ \ - *(\ d +)x(\ d +)/''做一个'preg_replace'应该有诀窍^^ – Jon 2013-02-13 05:18:21

回答

5

试试这个:

$string = 'http://www.example.org/wp-content/blogs.dir/29/files/2013/02/Personalized-Results-Asterisk-600x417.png'; 
$pattern = '/\-*(\d+)x(\d+)\.(.*)$/'; 
$replacement = '.$3'; 
echo preg_replace($pattern, $replacement, $string); 
+0

这也会代替任何匹配模式的字符串穿过网址.. – Anirudha 2013-02-13 05:23:03

+0

@ Some1.Kill.The.DJ:是的。 – 2013-02-13 05:24:57

+0

@Prasanth:谢谢它为我工作 – Sky 2013-02-13 05:25:08

0
$str=preg_replace("/^(.+)-\d+?x\d+?(\.\w+)$/i","$1$2",$str); 
0

的preg_replace

$correct_url = preg_replace('`\-[0-9]*x[0-9]*(\.[^\.]*)$`','$1',$url); 

有很多的方式。

+0

如果它在'[]'内,则不需要转义'.' – Anirudha 2013-02-13 05:20:26

0

您可以尝试

正则表达式:$1$2