本文介绍了用于在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
这篇关于用于在PHP中从URL中提取查询字符串参数值的正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!