geoPlugin Home

PHP Geolocation Web Service

The PHP Geolocation web service API 1) allows you to directly program your back-end PHP scripts to deliver dynamic geo-localized pages using the PHP array provided by geoPlugin.
To access this service, add the following url to a remote include call

	http://www.geoplugin.net/php.gp?ip=xx.xx.xx.xx


Of course, substitute the xx's with your visitor's IP number.

As an example, the following PHP snippet

  echo var_export(unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR'])));


Will output:

array (
  'geoplugin_request' => '3.236.86.184',
  'geoplugin_status' => 200,
  'geoplugin_delay' => '1ms',
  'geoplugin_credit' => 'Some of the returned data includes GeoLite2 data created by MaxMind, available from https://www.maxmind.com.',
  'geoplugin_city' => 'Ashburn',
  'geoplugin_region' => 'Virginia',
  'geoplugin_regionCode' => 'VA',
  'geoplugin_regionName' => 'Virginia',
  'geoplugin_areaCode' => '',
  'geoplugin_dmaCode' => '511',
  'geoplugin_countryCode' => 'US',
  'geoplugin_countryName' => 'United States',
  'geoplugin_inEU' => 0,
  'geoplugin_euVATrate' => false,
  'geoplugin_continentCode' => 'NA',
  'geoplugin_continentName' => 'North America',
  'geoplugin_latitude' => '39.0469',
  'geoplugin_longitude' => '-77.4903',
  'geoplugin_locationAccuracyRadius' => '1000',
  'geoplugin_timezone' => 'America/New_York',
  'geoplugin_currencyCode' => 'USD',
  'geoplugin_currencySymbol' => '$',
  'geoplugin_currencySymbol_UTF8' => '$',
  'geoplugin_currencyConverter' => '0',
)


PHP Geolocation Class

You can download the geoPlugin class to simplify using the PHP Web service.

View Class Source

A detailed example of how to use the class (with comments) is included in the class package.
An abbreviated version of the example is shown below

<?php
require_once('geoplugin.class.php');
$geoplugin = new geoPlugin();
// If we wanted to change the base currency, we would uncomment the following line
// $geoplugin->currency = 'EUR';
 
$geoplugin->locate();
 
echo "Geolocation results for {$geoplugin->ip}: <br />\n".
	"City: {$geoplugin->city} <br />\n".
	"Region: {$geoplugin->region} <br />\n".
	"Region Code: {$geoplugin->regionCode} <br />\n".
	"Region Name: {$geoplugin->regionName} <br />\n".
	"DMA Code: {$geoplugin->dmaCode} <br />\n".
	"Country Name: {$geoplugin->countryName} <br />\n".
	"Country Code: {$geoplugin->countryCode} <br />\n".
	"In the EU?: {$geoplugin->inEU} <br />\n".
	"EU VAT Rate: {$geoplugin->euVATrate} <br />\n".
	"Latitude: {$geoplugin->latitude} <br />\n".
	"Longitude: {$geoplugin->longitude} <br />\n".
	"Radius of Accuracy (Miles): {$geoplugin->locationAccuracyRadius} <br />\n".
	"Timezone: {$geoplugin->timezone}  <br />\n".
	"Currency Code: {$geoplugin->currencyCode} <br />\n".
	"Currency Symbol: {$geoplugin->currencySymbol} <br />\n".
	"Exchange Rate: {$geoplugin->currencyConverter} <br />\n";
 
if ( $geoplugin->currency != $geoplugin->currencyCode ) {
	//our visitor is not using the same currency as the base currency
	echo "<p>At todays rate, US$100 will cost you " . $geoplugin->convert(100) ." </p>\n";
}
 
/* find places nearby */
$nearby = $geoplugin->nearby();
if ( isset($nearby[0]['geoplugin_place']) ) {
	echo "<pre><p>Some places you may wish to visit near " . $geoplugin->city . ": </p>\n";
	foreach ( $nearby as $key => $array ) {
 
		echo ($key + 1) .":<br />";
		echo "\t Place: " . $array['geoplugin_place'] . "<br />";
		echo "\t Country Code: " . $array['geoplugin_countryCode'] . "<br />";
		echo "\t Region: " . $array['geoplugin_region'] . "<br />";
		echo "\t County: " . $array['geoplugin_county'] . "<br />";
		echo "\t Latitude: " . $array['geoplugin_latitude'] . "<br />";
		echo "\t Longitude: " . $array['geoplugin_longitude'] . "<br />";
		echo "\t Distance (miles): " . $array['geoplugin_distanceMiles'] . "<br />";
		echo "\t Distance (km): " . $array['geoplugin_distanceKilometers'] . "<br />";
 
	}
	echo "</pre>\n";
}
?>



This will output:


Geolocation results for 3.236.86.184: 
City: Ashburn
Region: Virginia
Region Code: VA
Region Name: Virginia
DMA Code: 511
Country Name: United States
Country Code: US
In the EU?: 0
EU VAT Rate:
Latitude: 39.0469
Longitude: -77.4903
Radius of Accuracy (Miles): 1000
Timezone: America/New_York
Currency Code: USD
Currency Symbol: $
Exchange Rate: 0

Some places you may wish to visit near Ashburn:

1:
Place: Ashburn
Country Code: US
Region: Virginia
County:
Latitude: 39.0437200
Longitude: -77.4874900
Distance (miles): 0.27
Distance (km): 0.43
2:
Place: Dulles Town Center
Country Code: US
Region: Virginia
County:
Latitude: 39.0376100
Longitude: -77.4158200
Distance (miles): 4.05
Distance (km): 6.51
3:
Place: Sterling
Country Code: US
Region: Virginia
County:
Latitude: 39.0062200
Longitude: -77.4286000
Distance (miles): 4.34
Distance (km): 6.99
4:
Place: Herndon
Country Code: US
Region: Virginia
County:
Latitude: 38.9695500
Longitude: -77.3861000
Distance (miles): 7.74
Distance (km): 12.45
5:
Place: Poolesville
Country Code: US
Region: Maryland
County:
Latitude: 39.1459400
Longitude: -77.4169300
Distance (miles): 7.89
Distance (km): 12.7


PHP Geolocation Currency Converter

The “geoplugin_currencyConverter” array key is the conversion rate for the currency converter base currency.
Like all calls to any of geoPlugin's web services, the default base_currency is USD ($US).
Thus, if your base currency is NOT $US, then you must add the variable base_currency=XXX to the call to geoplugin.net
eg

http://www.geoplugin.net/php.gp?base_currency=EUR

Now geoplugin_currencyConverter will output the exchange rate of one Euro for your visitor.

The base_currency value must be a valid ISO 4217 3-letter code.




An example for using the currency converter in PHP is given below.

 
<?php
 
function cc($amount) {
	global $geoPlugin_array;
	if ( isset($geoPlugin_array['geoplugin_currencyCode']) && $geoPlugin_array['geoplugin_currencyCode'] != 'USD' ) { 
		return '(' . $geoPlugin_array['geoplugin_currencySymbol'] . round( ($amount * $geoPlugin_array['geoplugin_currencyConverter']),2) . ')';
	} 
	return false;
}
 
$geoPlugin_array = unserialize( file_get_contents('http://www.geoplugin.net/php.gp?ip=' . $_SERVER['REMOTE_ADDR']) );
 
echo '<h3>Product A costs $800 ' . cc(800) . '</h3>';
 
?>



Product A costs US$800





See also

1) This product includes GeoLite data created by MaxMind, available from http://maxmind.com/
 
 


Acceptable Use Policy    Privacy Policy and User Agreement    Contact geoPlugin


©2006 - 2024 geoPlugin® is a registered trademark of GEOPLUGIN, SAS