首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用php / preg_split拆分链接

用php / preg_split拆分链接
EN

Stack Overflow用户
提问于 2013-03-15 23:28:15
回答 3查看 1.1K关注 0票数 0

我有一个与以下(变化的)结构的链接:

http://website.com/category/product/abc12345

类别和产品名称的长度各不相同,但id (abc12345)始终位于最后一个"/“之后,长度约为6-8个字符。

我尝试用以下代码提取链接:

代码语言:javascript
复制
preg_split('/[/]/', $val, $arr);
$narr[] = end($arr);

使用val作为链接,arr作为数组,结果应该被粘贴进去。narr是我想稍后保存到文件中的数组,所以它在这里并不重要。不幸的是,当我尝试这种方式时,我的结果总是空的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-15 23:33:22

我会选择:

代码语言:javascript
复制
$urlParts = parse_url($myUrl);
$parts = explode('/', $urlParts['path']);
$productId = array_pop($parts);

这样,在锚点(#content)或查询参数(?id=123)方面就没有问题了

票数 4
EN

Stack Overflow用户

发布于 2013-03-15 23:32:45

在以下情况下:

querystrings/params

  • The product (abc12345) is the end of the url
  • No url

尝试以下正则表达式:

代码语言:javascript
复制
preg_match('/\/([\w]+)\/?$/', $val, $arr);
$product = $arr[1];
票数 1
EN

Stack Overflow用户

发布于 2013-03-15 23:35:17

我会使用preg_match

代码语言:javascript
复制
if (preg_match('#.*/(.*)#', $val, $match)) {
    $result = $match[1];
}

您还可以使用像strrpossubstr这样简单的东西

代码语言:javascript
复制
$result = substr($val, strrpos($val, '/') + 1);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15436170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档