我有以下(变化)结构的链接:
http://website.com/category/product/abc12345
类别 - 和产品名称的长度有所不同,但id(abc12345)始终位于最后一个“/”之后,大约为6-8个字符。
我尝试使用以下代码提取链接:
preg_split('/[/]/', $val, $arr);
$narr[] = end($arr);
val是链接而arr是数组,应该粘贴结果。 narr是我想稍后保存到文件的数组,所以这里并不重要。不幸的是,当我以这种方式尝试时,我的结果总是空的。
答案 0 :(得分:4)
我会选择:
$urlParts = parse_url($myUrl);
$parts = explode('/', $urlParts['path']);
$productId = array_pop($parts);
这样,你对锚点(#content)或查询参数(?id = 123)没有问题
答案 1 :(得分:1)
在以下条件下:
尝试以下正则表达式:
preg_match('/\/([\w]+)\/?$/', $val, $arr);
$product = $arr[1];
答案 2 :(得分:1)
我会使用preg_match
:
if (preg_match('#.*/(.*)#', $val, $match)) {
$result = $match[1];
}
您还可以使用像strrpos
和substr
这样简单的内容:
$result = substr($val, strrpos($val, '/') + 1);