beny lim
beny lim

Reputation: 1304

Using Geolocation in PHP

I have a PHP page containing the following code to get latitude and longitude from a user input postal code.

But when I try to run it, I get the following error:

Warning: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/metsrobo/public_html/PHPPage2.php on line 4

Warning: file_get_contents(https://maps.googleapis.com/maps/api/geocode/json?address=750341&sensor=false&key=AIzaSyDa3Jhr3c5x_2GWrPwRoMWDXrMSYl3KvOA): failed to open stream: no suitable wrapper could be found in line 4.

<?php
    function getLnt($zip){
    $url = "https://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($zip)."&sensor=false&key=AIzaSyDa3Jhr3c5x_2GWrPwRoMWDXrMSYl3KvOA";
    $result_string = file_get_contents($url);
    $result = json_decode($result_string, true);
    return $result['results'][0]['geometry']['location'];
    }
?>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <?php
         $val = getLnt('750341');
         echo "Latitude: ".$val['lat']."<br>";
         echo "Longitude: ".$val['lng']."<br>";
        ?>
    </body>
</html>

Upvotes: 1

Views: 728

Answers (2)

Shyam
Shyam

Reputation: 300

Don't use api key with url, remove api key then it will work, because to get latitude and longitude you don't need api key. Change url like below

https://maps.googleapis.com/maps/api/geocode/json?address=750341&sensor=false

Upvotes: 2

Jenis Patel
Jenis Patel

Reputation: 1613

To make file_get_contents() function to work, firstly you need to enable the allow_url_fopen and set its value to On.

Regarding the same, you can try two things.

  1. Create an .htaccess file and keep it in root folder ( sometimes it may need to place it one step back folder of the root) and paste this code there.

    php_value allow_url_fopen On
    
  2. Create a php.ini file (for update server php5.ini) and keep it in root folder (sometimes it may need to place it one step back folder of the root) and paste the following code there:

    allow_url_fopen = On;
    

Hope it helps you.

Upvotes: 0

Related Questions