我需要从网址中提取商品ID;这种模式就是这样 & R = 10031004&,我的意思是,我需要在& R =和其他&
中提取字符串这是我到目前为止所做的,但我一直都会遇到错误。
preg_match('^[&R=]+ &$',
"http://www.lapdirecciondemario.com/items.php&R=10031004&", $matches);
$host = $matches[0];
echo $host;
答案 0 :(得分:1)
使用此:
preg_match('/&R\=(.*?)&/i', "http://www.lapdirecciondemario.com/items.php&R=10031004&", $matches);
echo $matches[1]; // will echo 10031004
答案 1 :(得分:0)
preg_match('#R=([0-9]+)#is', "http://www.lapdirecciondemario.com/items.php&R=10031004&", $matches);
echo $matches[1]; # 10031004
答案 2 :(得分:0)
首先,我可以简化你的任务,
这是脚本中的网址吗?
然后你应该检查$ _GET的内容,你会找到一个内容为10031004的变量R ...
$item_id = $_GET['R'];
echo $item_id;
答案 3 :(得分:0)
if (preg_match('/(?<=&R=).*?(?=&)/', "http://www.lapdirecciondemario.com/items.php&R=10031004&", $regs)) {
$result = $regs[0];
}
使用这个。
答案 4 :(得分:0)
$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}
。
这个正则表达式应该非常健壮并且匹配所有这些:
答案 5 :(得分:0)
我不妨再骗你了。这个将匹配R =之前的任何字符?或者&amp;并以&amp;结尾或#。
preg_match('/[?&]R=([^&#]+)/', "http://www.lapdirecciondemario.com/items.php&R=10031004&", $matches);
答案 6 :(得分:0)