Google 地图地理编码 PHP 适用于 IE,但不适用于 Chrome/ 移动设备、Edge 或 Safari/Mobile。我收到错误消息 "unexpected token ?"

Google map Geocoding PHP works in IE, but not Chrome/ mobile, Edge or Safari/Mobile. I get the error message "unexpected token ?"

我一直在做一些研究,但似乎无法在这里找到问题所在。

<body>

<?php
if($_POST){

    // get latitude, longitude and formatted address
    $data_arr = geocode($_POST['address']);

    // if able to geocode the address
    if($data_arr){

        $latitude = $data_arr[0];
        $longitude = $data_arr[1];
        $formatted_address = $data_arr[2];

    ?>

    <!-- google map will be shown here -->
    <div id="gmap_canvas">Loading map...</div>
    <div id='map-label'>Map shows approximate location.</div>

    <!-- JavaScript to show google map -->
    <script type="text/javascript" src="http://maps.google.com/maps/api/js"></script>    
    <script type="text/javascript">
        function init_map() {
            var myOptions = {
                zoom: 14,
                center: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>),
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById("gmap_canvas"), myOptions);
            marker = new google.maps.Marker({
                map: map,
                position: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>)
            });
            infowindow = new google.maps.InfoWindow({
                content: "<?php echo $formatted_address; ?>"
            });
            google.maps.event.addListener(marker, "click", function () {
                infowindow.open(map, marker);
            });
            infowindow.open(map, marker);
        }
        google.maps.event.addDomListener(window, 'load', init_map);
    </script>

    <?php

    // if unable to geocode the address
    }else{
        echo "No map found.";
    }
}
?>

<div id='address-examples'>
    <div>Address examples:</div>
    <div></div>
    <div></div>
</div>

<!-- enter any address -->
<form action="" method="post">
    <input type='text' name='address' placeholder='Enter any address here' />
    <input type='submit' value='Geocode!' />
</form>

<?php

// function to geocode address, it will return false if unable to geocode address
function geocode($address){

    // url encode the address
    $address = urlencode($address);

    // google map geocode api url
    $url = "http://maps.google.com/maps/api/geocode/json?address={$address}";

    // get the json response
    $resp_json = file_get_contents($url);

    // decode the json
    $resp = json_decode($resp_json, true);

    // response status will be 'OK', if able to geocode given address 
    if($resp['status']=='OK'){

        // get the important data
        $lati = $resp['results'][0]['geometry']['location']['lat'];
        $longi = $resp['results'][0]['geometry']['location']['lng'];
        $formatted_address = $resp['results'][0]['formatted_address'];

        // verify if data is complete
        if($lati && $longi && $formatted_address){

            // put the data in the array
            $data_arr = array();            

            array_push(
                $data_arr, 
                    $lati, 
                    $longi, 
                    $formatted_address
                );

            return $data_arr;

        }else{
            return false;
        }

    }else{
        return false;
    }
}
?>

</body>

// 在下面这一行我收到错误消息 "unexpected token ?"

 center: new google.maps.LatLng(<?php echo $latitude; ?>,<?php echo $longitude; ?>),

抱歉,如果信息不够,这是我第一次使用 Google 地图。

我发现我的代码不是问题所在。我需要改变

脚本类型="text/javascript" src="http://maps.google.com/maps/api/js">

脚本类型="text/javascript" src="https://maps.google.com/maps/api/js">

出于某种原因,浏览器需要安全地访问此 src link,而我在 http 上没有 "s"。一旦我添加了 S,它就开始在所有浏览器上运行。