1

我需要解析(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>\";

pointvar 是由这个 js var 生成的:

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

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

谢谢

4

2 回答 2

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。

于 2012-05-14T21:01:32.363 回答
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);
}
于 2012-05-14T21:20:01.063 回答