在PHP中将图像URL分解为三个子部分

时间:2015-05-15 12:49:44

标签: php regex url preg-match

假设我有这个图片网址: http://static2.tripoto.com/media/filter/medium/img/11099/TripDocument/chiang_mai_street_market.jpg

我想从这个网址中提取3件事:

  • “medium”(可以是中/小/缩略图)
  • 介质之后和图像名称之前的部分(img / 11099 / TripDocument)
  • 图片名称(chiang_mai_street_market.jpg)

2 个答案:

答案 0 :(得分:1)

你可以通过两种方式做到这一点。

1.pathinfo function - http://php.net/manual/en/function.pathinfo.php

2.使用p::first-letter { font-size: 100px; } 分隔符explode并从那里开始处理数组。

不推荐第二个。

答案 1 :(得分:1)

如果您愿意,也可以使用正则表达式:

preg_match_all('/^.*(medium|small|thumbnail)\/(.*)\/([^\/]+)$/', $url, $matches);

结果:

  • $ matches [0] = $ url
  • $ matches [1] =“medium”
  • $ matches [2] =“img / 11099 / TripDocument”
  • $ matches [3] =“chiang_mai_street_market.jpg”

假设:

  • 在您需要之前,给定网址中没有其他“中”,“小”或“缩略图”字符串。

修改

为了使其更适合其他尺寸/短语,您可以将短语提取到另一个数组,如下所示:

$sizes = ['medium', 'small', 'thumbnail'];

preg_match_all('/^.*(' . implode('|', $sizes ) . ')\/(.*)\/([^\/]+)$/', $url, $matches);