我有以下URL结构:
http://website.com/images/folder1/folder2/123456/x500x1000_2x_ImageName.jpg
我需要从图像名称中删除裁剪分辨率"x500x1000_2x_",如下所示:
http://website.com/uploads/folder1/folder2/123456/ImageName.jpg
我尝试了很多东西:
$img = preg_replace('/'[x]('d+)[x]('d+)[_2x_]'.*/', '', $img);
$img = preg_replace('/[x]'d[x]'d[_2x_]'.*/', '', $img);
$img = preg_replace('/'/'[x]+'d+[x]+'d+'D+'d'.*/', '', $img);
我真的不擅长怀孕,有人能帮我吗?
这应该适用于您:
(这里我只是用preg_replace()
替换url的basename()
的x'd+x'd+_'d+x_
。最后我只是将url再次与dirname()
连接在一起)
<?php
$img = "http://website.com/images/folder1/folder2/123456/x500x1000_2x_ImageName.jpg";
echo $img = dirname($img) . "/" . preg_replace("/x'd+x'd+_'d+x_/", "", basename($img));
?>
输出:
http://website.com/images/folder1/folder2/123456/ImageName.jpg
正则表达式解释:
x'd+x'd+_'d+x_
- x从字面上匹配字符x(区分大小写)
- ''d+匹配数字[0-9]
- 量词:+在一次和无限次之间,尽可能多次,根据需要回馈[贪婪]
- x从字面上匹配字符x(区分大小写)
- ''d+匹配数字[0-9]
- 量词:+在一次和无限次之间,尽可能多次,根据需要回馈[贪婪]
- _与字符_完全匹配
- ''d+匹配数字[0-9]
- 量词:+在一次和无限次之间,尽可能多次,根据需要回馈[贪婪]
- x_从字面上匹配字符x_(区分大小写)