我正在尝试从网站收集所有CatID ...网址结构是......
我感兴趣的是categoryId
,在这种情况下是12436777
我的问题是
哪个最好,正则表达式或字符串爆炸?
如果正则表达式,请帮助我,我非常糟糕..
另外,我必须考虑像
这样的网址我试过
$array = explode("http://www.abc.com/family/index.jsp?categoryId=", $loc);
foreach ($array as $part) {
$zee[] = $part[1];
}
但它什么也没给我......
感谢您的帮助..
答案 0 :(得分:6)
您可以使用parse_url可靠地为您提供查询字符串:
$parts = parse_url('http://www.abc.com/family/index.jsp?categoryId=12436777');
然后parse_str解析变量:
parse_str($parts['query'], $result);
echo $result['categoryId']; // outputs 12436777
答案 1 :(得分:2)
您可以使用以下正则表达式:
http://.+?Id=(\d+)
第一组将包含您要查找的ID。
答案 2 :(得分:2)
怎么样:
$url_parts = parse_url('http://www.abc.com/family/index.jsp?categoryId=12436777');
if (isset($url_parts['query'])) {
$query_parts = explode('&', $url_parts['query']);
$keys = array();
foreach ($query_parts as $part) {
$item = explode('=', $part);
$keys[$item[0]] = $item[1];
}
$category_id = isset($keys['categoryId']) ? $keys['categoryId'] : 0;
}
答案 3 :(得分:1)
$url = "http://www.abc.com/family/index.jsp?categoryId=12436777";
$parts = Explode('=', $url);
$id = $parts[count($parts) - 1];
答案 4 :(得分:1)
尝试...
list(,$id) = explode('=','http://www.abc.com/product/index.jsp?productId=12282785');
如果字符串中 1 =
答案 5 :(得分:1)
explode的第一个参数是分隔项。如果您想使用它,请尝试使用以下内容:
$loc = "http://www.abc.com/family/index.jsp?categoryId=12436777";
$res=explode("=", $loc);
,ID将在$res[1]
答案 6 :(得分:1)
如果你确定这是唯一的数字,那么就这样做
$st = "http://www.abc.com/family/index.jsp?categoryId=12436777";
echo preg_filter('/[^0-9]/','',$st);