2010-08-20 104 views
0

我想提取谷歌地圖網址的經度和緯度。 這樣的URL可能看起來像這樣:preg_match 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';

正如你所看到的,有幾個位置設置網址。在我的情況下,cbll變量似乎是正確的。

這是我想出了:

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

的問題:似乎的preg_match匹配第一個「& LL =」在URL中,而不是cbll部分。作爲結果,我得到了「& ll =」部分的URL。

回答

1

它爲我,如果我的var_dump $比賽中,我看到這個

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

你是對的。應該已經檢查了var_dump。 現在我需要找出爲什麼在地圖上顯示的標記在ll變量的位置處顯示,而不是在cbll變量中顯示... – reggie 2010-08-20 11:33:44

1
parse_str(parse_url($url, PHP_URL_QUERY), $vars); 
list($a, $b) = explode(",", $vars['cbll']);