PHP preg_replace URL 模式
PHP preg_replace URL pattern
我有以下 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,有谁能帮帮我吗?
这应该适合你:
(这里我只是把basename()
of the url with preg_replace()
. At the end I just concatenate the url again with dirname()
的x\d+x\d+_\d+x_
替换在一起)
<?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_(区分大小写)
我有以下 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,有谁能帮帮我吗?
这应该适合你:
(这里我只是把basename()
of the url with preg_replace()
. At the end I just concatenate the url again with dirname()
的x\d+x\d+_\d+x_
替换在一起)
<?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_(区分大小写)