php
  • parsing
  • google-maps
  • coordinates
  • 2012-05-14 2 views 1 likes 
    1

    (47.624718,-122.356133) 또는 example 또는 (lat, long) 쌍의 값을 구문 분석해야합니다.(lat, long) php의 값을 구문 분석하는 방법

    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\"))); 
    

    명백하게 이러한 값 Google의 점을 기준으로 크기/길이가 다양 그래서 어떻게 PHP를 사용하여 ,() 외에도 , 이후의 모든 변수를 두 개의 변수로 가져올 수 있습니까?

    감사

    +0

    빠른 메모를 따라 쉽게 : \ "... 여기에 필요하지 않습니다 –

    +0

    은 무엇을하나요 입력 문자열은? – Halcyon

    답변

    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

    를 사용하지만,이 방법을

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

    처럼 보이지만 한 쌍만 일치 할 수 있습니다. 정규 표현식을 사용하면 preg_match_all –

    관련 문제