preg_match url获取参数解析

2022-03-29 00:00:00 php preg-match

我正在尝试提取谷歌地图url的纬度和经度。 这样的URL可能如下所示:

$url = 'http://maps.google.com/?ie=UTF8&ll=39.811856,11.309322&spn=0,0.485802&t=h&z=12&layer=c&cbll=39.311856,11.519322&panoid=1hltSSOoqv5H1dVKZWFkaA&cbp=13,117.95,,1,16.71';

如您所见,url中有几个位置集。在我的例子中,CBLl变量似乎就是正确的变量。

这是我想出来的:

preg_match("~&cbll=(-?d+.?d*),(-?d+.?d*)~", $url, $matches);

问题:preg_Match似乎与URL中的第一个‘&;ll=’匹配,而不是与CBLl部分匹配。结果,我得到了URL的"&;ll="部分。


解决方案

它对我有效,如果我的变量转储$匹配,我会看到这个

array(3) {
  [0]=>
  string(25) "&cbll=39.311856,11.519322"
  [1]=>
  string(9) "39.311856"
  [2]=>
  string(9) "11.519322"
}

相关文章