如何解析(lat,long)php的值

时间:2012-05-14 20:54:27

标签: php parsing google-maps coordinates

我需要解析(47.624718,-122.356133)或示例或(lat,long)对的值。

该url由以下JS生成:

var html = \"<b>\" + name + \"</b> <br/>\" + address + \"<br><br>\" + \"<a id='myLink' href='result.php?\"+point+\"'>Professors here</a>\";

这个js var:

生成point var
var point = new GLatLng(parseFloat(markers[i].getAttribute(\"lat\")),parseFloat(markers[i].getAttribute(\"lng\")));

显然这些值的大小/长度根据谷歌地图上的点而有所不同,所以我如何使用php解析此问题以获取,之前的任何内容以及,之后()之外的所有内容变成两个变量?

由于

2 个答案:

答案 0 :(得分:1)

php > preg_match("/(-?[0-9]+(.[0-9]+)?),(-?[0-9]+(.[0-9]+)?)/","(42.3,-59.0)",$matches); print_r($matches);
Array
(
    [0] => 42.3,-59.0
    [1] => 42.3
    [2] => .3
    [3] => -59.0
    [4] => .0
)
php >

由于括号的嵌套方式,索引是这样排序的。只需使用索引1和3。

答案 1 :(得分:1)

你可以更简洁地写出来,但这很容易遵循

$latlon = "(42.3,-59.0)"; 
list($lat, $lon) = string_to_lat_lon($latlon);

function string_to_lat_lon($string) {
    $string = str_replace('(', '', $string); // remove leading bracket
    $string = str_replace(')', '', $string); // remove trailing bracket
    return explode(',', $string);
}