[英]regular expression to extract a query string parameter value from a URL in PHP
我需要从URL中提取项目ID; 模式是&R = 10031004&,我的意思是,我需要提取&R =中的字符串,而其他&
到目前为止,这是我所拥有的,但是我一直在出错。
preg_match('^[&R=]+ &$',
"http://www.lapdirecciondemario.com/items.php&R=10031004&", $matches);
$host = $matches[0];
echo $host;
用这个:
preg_match('/&R\=(.*?)&/i', "http://www.lapdirecciondemario.com/items.php&R=10031004&", $matches);
echo $matches[1]; // will echo 10031004
preg_match('#R=([0-9]+)#is', "http://www.lapdirecciondemario.com/items.php&R=10031004&", $matches);
echo $matches[1]; # 10031004
首先,也许我可以简化您的任务,
这是脚本中的网址吗?
那么您应该检查$ _GET的内容,您将在其中找到包含内容10031004的变量R ...
$item_id = $_GET['R'];
echo $item_id;
if (preg_match('/(?<=&R=).*?(?=&)/', "http://www.lapdirecciondemario.com/items.php&R=10031004&", $regs)) {
$result = $regs[0];
}
使用这个。
$url = 'http://www.lapdirecciondemario.com/items.php&R=10031004&';
preg_match('/(&|\?)R=([0-9]+)/i', $url, $matches);
echo $matches[2];
与其他答案相反,如果参数R
前面带有?
,则这也将匹配?
而不是&
。 如果您知道更多有关数字长度的信息,可以将{min,max}
[0-9]
{min,max}
之后的[0-9]
之后的+
替换为。
这个正则表达式应该非常健壮,并与所有这些匹配:
我不妨再嘲笑你。 该字符将与R前面的R =之间的任何字符匹配。 或&,并以&或#结尾。
preg_match('/[?&]R=([^&#]+)/', "http://www.lapdirecciondemario.com/items.php&R=10031004&", $matches);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.