如何解析(纬度,经度)php的值


How to parse value of (lat,long) php

我需要解析(47.624718,-122.356133)或示例或(纬度,长)对的值。

该 url 由以下 JS 生成:

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

point var 由以下 js var 生成:

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

显然,这些值的大小/长度会根据谷歌地图上的点而变化,那么我如何使用 php 解析它以将除()之外的,之前的任何内容和,之后的所有内容都转换为两个变量?

谢谢

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。

你可以写得更简洁,但很容易遵循这种方式

$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);
}