PHP preg_replace URL pattern


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()替换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_(区分大小写)