将图像 url 分解为 PHP 中的三个子部分
Breaking down a image url into three sub parts in PHP
假设我有这张图片 URL:
http://static2.tripoto.com/media/filter/medium/img/11099/TripDocument/chiang_mai_street_market.jpg
我想从中提取 3 个东西 url:
- "medium"(这可以是medium/small/thumbnail)
- 介质之后图像名称之前的部分(img/11099/TripDocument)
- 图片名称(chiang_mai_street_market.jpg)
您可以通过两种方式执行此操作。
1.pathinfo 函数 - http://php.net/manual/en/function.pathinfo.php
2.using explode
带分隔符 /
并从那里处理数组。
虽然不推荐第二个。
您也可以使用正则表达式,如果您愿意:
preg_match_all('/^.*(medium|small|thumbnail)\/(.*)\/([^\/]+)$/', $url, $matches);
结果:
- $匹配[0] = $url
- $匹配[1] = "medium"
- $匹配[2] = "img/11099/TripDocument"
- $匹配[3] = "chiang_mai_street_market.jpg"
假设:
- 在给定的 url 中有 none 其他 "medium"、"small" 或 "thumbnail" 字符串,在此之前您需要。
编辑:
为了使其更灵活地用于另一个 sizes/phrases,您可以将短语提取到另一个数组,如下所示:
$sizes = ['medium', 'small', 'thumbnail'];
preg_match_all('/^.*(' . implode('|', $sizes ) . ')\/(.*)\/([^\/]+)$/', $url, $matches);
假设我有这张图片 URL: http://static2.tripoto.com/media/filter/medium/img/11099/TripDocument/chiang_mai_street_market.jpg
我想从中提取 3 个东西 url:
- "medium"(这可以是medium/small/thumbnail)
- 介质之后图像名称之前的部分(img/11099/TripDocument)
- 图片名称(chiang_mai_street_market.jpg)
您可以通过两种方式执行此操作。
1.pathinfo 函数 - http://php.net/manual/en/function.pathinfo.php
2.using explode
带分隔符 /
并从那里处理数组。
虽然不推荐第二个。
您也可以使用正则表达式,如果您愿意:
preg_match_all('/^.*(medium|small|thumbnail)\/(.*)\/([^\/]+)$/', $url, $matches);
结果:
- $匹配[0] = $url
- $匹配[1] = "medium"
- $匹配[2] = "img/11099/TripDocument"
- $匹配[3] = "chiang_mai_street_market.jpg"
假设:
- 在给定的 url 中有 none 其他 "medium"、"small" 或 "thumbnail" 字符串,在此之前您需要。
编辑:
为了使其更灵活地用于另一个 sizes/phrases,您可以将短语提取到另一个数组,如下所示:
$sizes = ['medium', 'small', 'thumbnail'];
preg_match_all('/^.*(' . implode('|', $sizes ) . ')\/(.*)\/([^\/]+)$/', $url, $matches);