用于在PHP中从URL中提取查询字符串参数值的正则表达式
我需要从URL中提取项ID;模式如下
&;R=10031004&;,我的意思是,我需要提取&;R=中的字符串和另一个中的
这就是我到目前为止的所有信息,但我不断收到错误。
preg_match('^[&R=]+ &$',
"http://www.lapdirecciondemario.com/items.php&R=10031004&", $matches);
$host = $matches[0];
echo $host;
解决方案
$url = 'http://www.lapdirecciondemario.com/items.php&R=10031004&';
preg_match('/(&|?)R=([0-9]+)/i', $url, $matches);
echo $matches[2];
与其他答案相比,如果参数R
前面是?
而不是&
,则也会匹配。如果您知道更多关于数字长度的信息,可以将[0-9]
之后的+
替换为{min,max}
。
此正则表达式应该非常健壮,并与以下所有内容匹配:
- http://www.lapdirecciondemario.com/items.php&R=10031004
- http://www.lapdirecciondemario.com/items.php?foo=bar&R=10031004
- http://www.lapdirecciondemario.com/items.php?R=10031004
- http://www.lapdirecciondemario.com/items.php?R=10031004&something=else
- http://www.lapdirecciondemario.com/items.php&R=10031004#more-here
相关文章