# Calculate distance by latitude and longitude

I'm using this php function but I'm having a hard time to test if it works.

Basically what I would like to do is to use this Google API request:

Therefore i need to use the location paramater "location — The latitude/longitude around which to retrieve place information. " When I echo \$jsonLAT or jsonLNG there will be no result.

``````		function distance(\$lat1,\$lon1,\$lat2,\$lon2) {
\$R = 6371; // km (change this constant to get miles)
\$dLat = (\$lat2-\$lat1) * pi() / 180;
\$dLon = (\$lon2-\$lon1) * pi() / 180;
\$a = sin(\$dLat/2) * sin(\$dLat/2) +
cos(\$lat1 * pi() / 180 ) * cos(\$lat2 * pi() / 180 ) *
sin(\$dLon/2) * sin(\$dLon/2);
\$c = 2 * atan2(sqrt(\$a), sqrt(1-\$a));
\$d = \$R * \$c;
if (\$d>1) {return round(\$d) * 1000;
} else if (\$d<=1){ return round(\$d*1000);
} else {
return \$d;
}
}
//print_r(\$thisStuff);

``````
###### Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Author Commented:
Spent countless hours on this and found out that this request won't work:

But this one will work when I manually enter lat + lng instead of the variable:

So this means the problem is with the variables \$jsonLAT and json LNG. You can copy + paste the second request and you will see the JSON response. But I still can't find out why \$jsonLAT and jonLNG won't work.
Commented:
It looks like you're using the Haversine algorithm.  If the distance is less than about 100 miles, plane geometry seems to work well, too.  Beyond that, Haversine improves accuracy.  Neither takes into account things that are issues at very short distances, such as inaccurate start/end points (ZIP codes, common in these calculations, are not locations, but are instead postal carriers' routes) or natural barriers such as mountains and rivers.

http://www.experts-exchange.com/Programming/Languages/Scripting/PHP/A_4276-What-is-near-me-Proximity-calculations-using-PHP-and-MySQL.html

If you want to post some test data (the most important thing a programmer can have), I'll be glad to try to show you how I might implement your distance calculations.
Author Commented:
Also the geocoding works fine, for example:

So the problem must be somewhere with these lines of code:

``````		\$json_data = json_decode(\$poiAddress);

``````
Commented:

Here is the script.  I copied the JSON string from the output of the Google APIs URL that worked.  What comes next?
``````<?php // demo/temp_seopti.php
error_reporting(E_ALL);
echo '<pre>';

// SEE http://www.experts-exchange.com/Programming/Languages/Scripting/PHP/Q_28544554.html

\$jso = <<<EOD
{
"results" : [
{
"geometry" : {
"location" : {
"lat" : 36.4242303,
"lng" : -89.0570096
},
"viewport" : {
"northeast" : {
"lat" : 36.465505,
"lng" : -88.999202
},
"southwest" : {
"lat" : 36.39093,
"lng" : -89.099436
}
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
"id" : "98ba9c3639534d44daef16c09722f0afeeacb2b7",
"name" : "Union City",
"place_id" : "ChIJe8fmOsoReYgRB68Xo4_Qx0U",
"reference" : "CpQBhQAAAPYbWwTi2dK4oReunkE-zIwvLJ8_DjoaePYeSKRgiY6xQRNHmWmbdbBXpHrstSSLNXgKF1-cMEry9qX8ce8CRM6NSvfNBrfVb6baTVjHe6PnL-ZEtYo9VOim_qr4u-9OyaHKmUHlMXEj7sW86gvgLC2ftKCWLZ2wxd7dMNAsCPWeCu5TKjhW_Ez77F4m9Sxp6xIQ6mrEC2PoRtm1UxM3MOusohoUH_DOV4zA_bpjJZ2SG1ODR-kkvUo",
"types" : [ "locality", "political" ],
"vicinity" : "Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.438128,
"lng" : -89.070954
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png",
"id" : "66f6e610461a62f934e2b458b361d90f5a8a64cd",
"name" : "Discovery Park of America",
"opening_hours" : {
"open_now" : true
},
"photos" : [
{
"height" : 480,
"photo_reference" : "CnRoAAAAfrakakPa57fdcx3EJg7MVwMPnefJeNzi1sq5YZhQlS-1wOk67vOxrmmdD7aIEtH6yk5rnSH-Dq-Pp9Xnip6Rpjs7rUHenC32W0WGAq77AJ_L0CMPFo3KpTl2nmMllkjIEL09Z2Ld2debi-22dA_MIBIQsLl-nea2ypgCRdPj1L0sxBoUp7plMkg5Uyw0hzueJlsbi1Bvjss",
"width" : 334
}
],
"place_id" : "ChIJ61ckLYNyeYgRLi46eFzziN4",
"rating" : 4.3,
"reference" : "CoQBfAAAAHsBQJ8mIxJXLL6geW8U96IUGauIAB8W3NUI4N3na_VRoehrk9WGY4pS3wx9m8bT6SpGZeFAoc4VjyAEIHk_Yu6J9GkbyeJqUxravYHJCaEYnJ_rrTRG5ChSy7RFX8fYYTIVbA3AGYDdYjhLWK0UMw3cB0RyvVa5osXSDDHD3mySEhAFbDZbYDSMUf6lUQ4VikdeGhTTqsifkzb79SJLRjssL-Ljfe1wAg",
"types" : [ "museum", "establishment" ],
"vicinity" : "830 everett Blvd, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.427747,
"lng" : -89.03466400000001
}
},
"name" : "Wenk",
"opening_hours" : {
"open_now" : false
},
"photos" : [
{
"height" : 480,
"width" : 640
}
],
"place_id" : "ChIJZ0-AgvRteYgREO_9EMRSBhQ",
"reference" : "CnRmAAAAKIqKIgQWawMN1tDJC8C_e02FeVxBP3Q2tB69qJmXcjbXBlAr-XW_mnmMJqbrdRria7TNs-vhZqGdbpkShNgALugHlUthb-NCjZc669XpUqifg_JSbrsMbF9qnDj621dDUxZJlcaHPTUzvXiLxCboGRIQUEawM7UiS_FnTcp5qGIirBoUJACC1sCbCS0xPpDuqPgam0R071E",
"types" : [ "establishment" ],
"vicinity" : "1729 Nailling Dr, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.403734,
"lng" : -89.08901899999999
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/lodging-71.png",
"id" : "00a0f6f9b9eed15901486d4989cc30b2a19cd828",
"name" : "Hampton Inn Union City",
"opening_hours" : {
"open_now" : true
},
"photos" : [
{
"height" : 303,
"width" : 425
}
],
"place_id" : "ChIJ2yKJejFteYgRPZHdoNtRhDk",
"rating" : 3.9,
"types" : [ "lodging", "establishment" ],
"vicinity" : "2201 W Reelfoot Ave, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.414819,
"lng" : -89.05652499999999
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png",
"id" : "9c68cabaab80dd455d243c850c8dfe7cd46b1e72",
"name" : "SUBWAY® Restaurants",
"opening_hours" : {
"open_now" : true
},
"photos" : [
{
"height" : 1600,
"photo_reference" : "CnRnAAAAfn5NcAYI5_0GthBSNpEF6f4-5qaI2ZKBdUNfkUP_rJkPwdMT6EhVCgw8vh-bqzB-mdHq9ZesZjgujK109QSW0zjQbBV1NZK5ELMVquxU3XLOweo6E8UpXhFIq4atAs7utbPonPB6xxa6nXLG_WeRXhIQP4v4aM1pDxm8cvbC0kEyvBoUcBiooyzMTbRWIxFx8Xn7Kpo-eaQ",
"width" : 2400
}
],
"place_id" : "ChIJe97CinVteYgRS1ixQBoKoic",
"price_level" : 1,
"reference" : "CoQBdgAAAOmMN06_2vvMR6q92caa-CSV_FKiwPPB9R6XCzcHWCKKFIfOtRWEDxnZo8izuRJeUFrIy1r9-Baj8XSD1SGzAvuCYIEk4fsf2GmTxWBQoUzVU8Px5fqcAyWxfU3-NDb_YXtXzBiK0w9-lN4_NPlfNymJ9h4z_3SAlYRigPiC7rhwEhD7_OICqAsz-p28XiVlDLAPGhS9tl7QiWTO-cS8CCoilBtma1A7nA",
"types" : [ "store", "meal_takeaway", "restaurant", "food", "establishment" ],
"vicinity" : "206 E Reelfoot Ave #1, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.414384,
"lng" : -89.05076699999999
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/shopping-71.png",
"id" : "b074d523d170e85c9699819c73788c5c5195a7b8",
"name" : "Walgreens Store Union City",
"opening_hours" : {
"open_now" : true
},
"photos" : [
{
"height" : 960,
"photo_reference" : "CnRoAAAA-bUnh9rTOuWrRkKu1z6AK_5ALpUzNPcdL4WszQ_aeSx1I2SPYl8AF-QiYeMCgTvrgbi1DSAV14-D9FRoCCI-EyS3TdNI2tjlZioSIMCZx8KBwFMw5r_GTkddb4UD6tm8YHKm4MR9XPc3xH4MKvSazhIQJUpPCnmZehaajAMZBWLljRoUBfJFH9r-QqYkTQLngUKzJmftvY4",
"width" : 1280
}
],
"place_id" : "ChIJUWqrOplteYgRZOpwzjn3JVQ",
"price_level" : 2,
"reference" : "CoQBfAAAABNuhdtZAjPPvF_RwM5i62W7ZU5Pb0ZFKaoPpW7W4x01SlraJu6-IE426quWW68gvduG32x-yWHat4ESwb4CDrVVy-_5Iu0rE4_AITsTthcjaM13pT-9_eKZXKNe9LYupeCz0SK530at3c5jlELPrSEkanIkjY2rpyg3EsxoVVH0EhD2j-fTGHqgMFzzA9Hmt7h6GhQzaZotOUL_K1SP_JkAblTEgYE3_Q",
"types" : [
"convenience_store",
"food",
"pharmacy",
"store",
"health",
"establishment"
],
"vicinity" : "700 E Reelfoot Ave, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.413424,
"lng" : -89.074809
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/museum-71.png",
"id" : "20d81043dd1ef833e172a1642dd2745a42bbc1d0",
"name" : "Dixie Gun Works",
"place_id" : "ChIJU21VhGpteYgRC7uZvMBhE_A",
"rating" : 4,
"reference" : "CoQBcgAAAAYFCbKsQYsQVMquOQyOwPyAeujSJ67tPfMC1h8D0d6Gh22Q17IgoYIB2aG_GcoOL-N2_LrFavfpr_5Ta1b8RtS6Xtxg370vE-1Q342xLeDVaEEsOF6lQgITmZspyTEkwZJdOR253D91n9yQ9RYqqKQ1Uo3QU5ecLr5S0w0Bf8PhEhCHFJGNmgKWFk_QBsy7KQg8GhTKwazjXM67uWM0X_sv76y2o9vbLA",
"types" : [ "store", "museum", "establishment" ],
"vicinity" : "1412 W Reelfoot Ave, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.408714,
"lng" : -89.08285100000001
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/lodging-71.png",
"id" : "51d0cf3267c811fd8180f63673fc897d756c28c5",
"name" : "Country Hearth Union City",
"place_id" : "ChIJ_14CUzhteYgRB7LB2aiGy4k",
"rating" : 3.4,
"reference" : "CoQBfAAAAFq1pr3cS4A815w5S4SpP1FXjMsjJWtD-L5vGgLjvswHxzYDrM5gYvwg1zWIaL7wOouggBNJ0-l8kUT_opIyi5SArVS2zUEhQ6k-2ZD6qJMM849bSi5d-J8SwW4eYnFrMJDLu70_luzR5d2y1Nzhajtiv8Bvx6gM9HCTF2paj3ywEhBf67vIUulDM4ziQekc-zegGhTA1z-WBgZTqDq8IdD40BoR8Kc8cQ",
"types" : [ "lodging", "establishment" ],
"vicinity" : "2009 W Reelfoot Ave, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.436862,
"lng" : -89.065836
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/worship_general-71.png",
"id" : "52267f71c9d57a5a179ff712e133436a00c88580",
"name" : "Second Baptist Church",
"place_id" : "ChIJ61ckLYNyeYgRPK4b1Wuc-30",
"reference" : "CoQBdwAAACzAPyh4I1GouNLQ6UzIlLsPxbKoOScpiZbF7Cym9CWu-PkP84Bh0hD51U0NWAO33ZV0uQ73YT5-bTPqUhKH6SLFVe2umZsrzGejemGULni5FJXPtG9SfzFQjohLlAidGFB789_zuUxCIIKORABaex0uqrRgP1iKA5teoH7jCRiMEhDhG5X-U-CG3mhpZUoFQmbLGhQ5ZMEab2Azo9EWysb2yAqEKTKr-Q",
"types" : [ "church", "place_of_worship", "establishment" ],
"vicinity" : "831 Everett Blvd, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.428014,
"lng" : -89.07574700000001
}
},
"id" : "90695c3c2039da0ccf029cb997e89e6b1d9177e0",
"name" : "Abernathy Harley-Davidson",
"opening_hours" : {
"open_now" : true
},
"photos" : [
{
"height" : 540,
"photo_reference" : "CnRjAAAALsimLDtzT3Lm8DS2ugXIye6c0Lhy6sdjXJ0jKGYvYyACfIXZq-x-mGlQMJQsc-yTYaKgP6Ag3cIfWX_azVh7_Kg3v0vfWHEQ5QjP-njo1xoo_dRgbKGiIvVfqow9y0x06paSw41N-Isn-Sl2LFroQBIQsIV5dmVGpEzgAvyJJ4LS-xoUhJzwpJlcXf7Dw_72BJv4g74ETuk",
"width" : 960
}
],
"place_id" : "ChIJv2aUBV5teYgRVH8pHCMU4ss",
"rating" : 5,
"reference" : "CoQBfAAAAGy21Hdqxls8O6kwTRgR0tdQoQ6-X_Jf4-WEZoDiwt5oaS5aVDDL81tRQpizN0ZNQpOmVmhaOUWajG-72do3Lg20ZsxHyCN-3Qa7UNds1SwRIjN1PG5CT2dpA2awk6wiXodueRqXyvwYcnWDkCFYkVwfR4J8gy7MSMmSfcYCnw1gEhAUWDI4qV_isboSPTOVf1PZGhTm8xfHqYqo4pMtQ3Gv4z0oRLTxRw",
"types" : [ "store", "establishment" ],
"vicinity" : "1703 W Main St, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.414808,
"lng" : -89.069509
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/lodging-71.png",
"name" : "Magnum Inn",
"opening_hours" : {
"open_now" : true
},
"photos" : [
{
"height" : 515,
"photo_reference" : "CnRnAAAA7SYZCRH1mXcEbla20tlmqDvjJ-mED8jcU4FlvdS9BzGe4wQUbmO5y-jZxMhD-l0bEM_pL73A-LlnOeX70yhSGBtAgh-w00AM6g13RRKTq81PcY3CvmYosVtQNsh2mLqYbjeD3y8fZGVOyfxgjzsZ0BIQDI3wLv_OzbkNd6JcaIKYAhoUIZ2Ix4J9zJx3cIx0T4pF1t0nlOE",
"width" : 664
}
],
"place_id" : "ChIJHdtRaGxteYgRWrmAQrB1Ii0",
"rating" : 3.2,
"reference" : "CnRsAAAAuz5DdytgTSpPYe9SOV8pdEbhC0QdZaJFgqPNcX2Dh2Ptv3Dizg3hh53J-ggS9VnreSxEompsNSlEDMqyMxcSmyWBGeXX-lp3ouGlwd1jyQ2xrSk555DSKUFsTXOb09VYlkz49bHPcRrFgBTrCNxgHBIQ1q74HYeeh4HPa4RuEnOkJxoUxq1xb6-xP5fUpGhASLNoOcV5HSc",
"types" : [ "lodging", "establishment" ],
"vicinity" : "1400 Vaden St, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.414686,
"lng" : -89.071044
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/restaurant-71.png",
"id" : "e206dc53da4ea1b97a55b3b6ddc07c4213124778",
"name" : "McDonald's",
"photos" : [
{
"height" : 1600,
"photo_reference" : "CnRnAAAAkcvGJsmPH82omSrbCMvtS-W4GlqSQVW2RVmVwMN5QCuy-ysMZTMhjNJKniCq1Z1X_ft_WifkrdHC4CZMjk9Cc7oLJJ86eH8ym0l4GXWL2gaB0WDlTPPAwTJvNLLo9XbQzO-iGedztwb09lGu9C-CRBIQOF-nV0oznb2rTXUbeBM1cxoUwzDUGA-Gp4diin3Fgys2OLCzj_U",
"width" : 2400
}
],
"place_id" : "ChIJaSpe2CINeYgRRdqBU2oWmD4",
"price_level" : 1,
"rating" : 3.8,
"reference" : "CnRsAAAARdHgTE--6QS58qBqc4-Lwn2yQ7ZbVd38QxiaTNlNfpEqPdx7jVHVs8Dyv1Wb3_24dnYO0JMSoo_WCLIbCvfJoz-cLPbWUQmJOl8ed00FInYB2GvsAz47NXs2hbdDWO-ddWovM0Gy4U9UQz_ESX0WZBIQYE0wfyW6asGyXtH-vn-w7hoUpdg4kroNYG1RLmAONay-9drr1V0",
"types" : [ "restaurant", "food", "establishment" ],
"vicinity" : "1108 Marshall Rd, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.41616,
"lng" : -89.071546
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/lodging-71.png",
"id" : "dde300ea80effd66bc5207653522aa6888871b1b",
"name" : "Hospitality House",
"photos" : [
{
"height" : 1265,
"photo_reference" : "CnRoAAAA-MtwjZNgEbMP-spDyTJMJ7pvScfDFlNHsjHf38uUdgdn8CBa0xALZV5jWNmc1gdrTSMNazjLj1jp8cHtQu0CL6OeTUq1hVep7RGCTNZfTPwU1MoG0yClTbJ_brB_ieYhF7ORMx55Zdcdl5zqd0w_aRIQZPIybu7WZEFcs---WoULaRoU4Ecefafk7TpDNGQ-aIA9_gv64CI",
"width" : 949
}
],
"place_id" : "ChIJe4WHxmtteYgRNPzWmWexm9E",
"reference" : "CoQBdAAAAEjmYAFuqnhKyk5KH-0RgtbCYD5IspsLsIlwSVvbD5UHp2XHattMzO8SXxoqhUCQRwjITNGgivh4uUz4PowbHfBm-23Oo4UAhjo0ddyq7H-wyxNqEnG5YLNG4Uh-TJ6j9fpneNkeAZ1GcznRaP2GaFn28ambhVwFjgmjmnnP4bMkEhDdZqlmDbnlzko4lNUUrDyDGhTiucH0xvWht6bKNdZ3Gi9i0WZvAQ",
"types" : [ "lodging", "establishment" ],
"vicinity" : "1221 W Reelfoot Ave, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.418675,
"lng" : -89.04506499999999
}
},
"id" : "3628f4542d80aeb32660cc79f199f5bb093f8f06",
"name" : "Union City High School",
"place_id" : "ChIJN0Vo8ZBteYgRuFAUlym_RTQ",
"reference" : "CoQBeAAAAJ1MoO6KBsch6JL6f9774kdThqQjhjZwtjvtt0SRNhEh9LFBra8isVJNdauAmJQdIBn6HoesHrXncr2MeVa3SYolhFAwwa370SuXblaxXOUCv2QPOx3g-B4yuBIqbrkWCqjyd7kx-yQiPW-O65MWyxJRb_DO6_LtCFSu9JG69NuvEhAxL3jfVvBmPM4Jerdx8gTrGhT_Yr52JyppxW-NdKbu03JpBRC5ZQ",
"types" : [ "school", "establishment" ],
"vicinity" : "Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.412511,
"lng" : -89.045258
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/library-71.png",
"id" : "141eb9e97c250d38edea0e3fd79591c8624f0d07",
"name" : "Obion County Public Library",
"opening_hours" : {
"open_now" : true
},
"photos" : [
{
"height" : 320,
"photo_reference" : "CnRnAAAA9hsRVRE1e98_-F1CZ_PyAMFJpp5XiFNVyArAVKpGKQCqNJPuzFh_K8AFYq28IwTlX7E5CaPIp-5GVspJFBo86NOeG51qwal4c2jtzG6yNn7e1KIZyZaAFJN0MedT0r10dyY-rLK3cTiRwVWMFAQoRhIQuJ4AmRN_nVqRTe3WmqxUcBoU1RbUbj6vvX2_Czm7_vUWS9fICFM",
"width" : 714
}
],
"place_id" : "ChIJJeu2nZdteYgRjpYvbdjjo5o",
"types" : [ "library", "establishment" ],
"vicinity" : "1221 E Reelfoot Ave, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.406457,
"lng" : -89.083229
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/car_dealer-71.png",
"id" : "534f7d428e684b505c0201fbd5bec92c7350140a",
"name" : "Herman Jenkins Motors",
"opening_hours" : {
"open_now" : true
},
"photos" : [
{
"height" : 300,
"photo_reference" : "CoQBegAAAHgkY0O1GkQOw3UyK01k5kRT5wHsu-LrA0foYbe6EYp_8kxMKWvZ0avSh9-q8FcwuPLzatVIKHgqyhbtsw0vCQTwm14rVpj5AuChCmMA6ZDkW-HLDYt3ChIu2ZOAXlJ81iV-qT3-JF6fhnKg5kvnLi9oLJLQB8tAocfn_tKDG1PpEhCVi0ZlCV4YukRqCDJiquxFGhS-D5IqVXWZUOPCDDhvJnL7gWJsew",
"width" : 400
}
],
"place_id" : "ChIJvc3a7TlteYgRNOz3Bkin4XA",
"reference" : "CoQBdwAAAOkmhodiriORekFL_b4sxn4mIZ49xqBNUZlTiAIdgVPaw4aol2MLqp07tVIeZioUKUFAE-dfbkDmITJALg4isxIosqXOtTLhB4uPeaRrLgZbbpMbHYhgTmEEJ8iaFeLZDp6hL9rdsMl2NOEq1skaJBBfWFhG7PyBF-H4C3B3uj-VEhCyzXulS4egMMIuoFZlyRnvGhQx46qeBl0vVln_ikoFG72K9QyP9A",
"types" : [ "car_dealer", "store", "establishment" ],
"vicinity" : "2030 W Reelfoot Ave, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.414527,
"lng" : -89.051807
}
},
"id" : "9aef40412768234fb77a9183312c9c2a30142fb6",
"name" : "Alexander Thompson Arnold CPAs",
"opening_hours" : {
"open_now" : false
},
"place_id" : "ChIJ5zdFxJ5teYgRXJniK5gkCHY",
"reference" : "CoQBgAAAAO-XvnNMnKnJbvYZssbxRV_HD7S2ofQ1tZaS3cOZwOnzc6qBD06ZSpoflowcIQ2rzg2ZK4F8pfQYm2kXlhMjaxfMjp2C4Wn9ykgFVaFFMX2QYp89HfKBxw5L1UKBST-_E7gwkMfiatpqMhtp6Dqa3_uvV3Rh-YUvw-J48yTA-uYEEhBg-JMFROb3XLiB-cJKfhceGhQlswlRmujzIAH1CfZ1m4jTAi6INg",
"types" : [ "accounting", "finance", "establishment" ],
"vicinity" : "624 E Reelfoot Ave, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.41167,
"lng" : -89.07716000000001
}
},
"id" : "4febc74c2caa824003436f9d157fc77241acef16",
"name" : "Allen's Towing and Recovery",
"opening_hours" : {
"open_now" : false
},
"photos" : [
{
"height" : 496,
"photo_reference" : "CnRoAAAAaIBnBsrGyI63Y1i_1rqk7ZjT35teVKxMlelafkeJ3xPEQGatv3dUfmSWdx4a9MU0ipaBdOIktcx9pSOfUjMGJ1uwl7kN3_q5WWO7WSeT2dm80zqixHbJvxHi18xL8MAG4eQMjiYfm1sCt6ktk8XE3BIQ6QLxP3-Ti8Q7a6yD79thbBoUUcPS6dLKTN2BZFs3d0VSTOQUZ5c",
"width" : 664
}
],
"place_id" : "ChIJzVNIekBteYgRpTSyhoSmYNY",
"reference" : "CoQBfgAAAI2pqvJEszvL2ALUc3VJJND4f0huVfNOiFQDF8Yss2BCkAS1R0RMOekhoPCIM1GehW1rvJrOW9L1fwOm2uFPOjBz6vwfdf2J9cxdI9j7gbwffLjhkIroybpuJymU9wG36sE78SnusgC9R4EmsRmAQboubgmPlkba88ClUKMo4FPGEhA4eN8W949GvxWDpPjDR2AJGhSSw-3rMVcrvWGJSLGxRyJh0iwyvg",
"types" : [ "store", "car_repair", "establishment" ],
"vicinity" : "2013 W Reelfoot Ave, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.415154,
"lng" : -89.059021
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/shopping-71.png",
"id" : "44972998726f9c65ac6ef1ffaf5b3cea2054b410",
"name" : "Hill's Hardware & Sporting",
"opening_hours" : {
"open_now" : false
},
"photos" : [
{
"height" : 344,
"photo_reference" : "CnRnAAAAvOS7rQ6ysF4pXNgkp1ekSDl51NoZiIFnUSESNON7iokoHgwcfm1_eBmmMiCtuDiWh6jqpczuWzKJXUkU8agTrsPEHEb8ns3wQ1oM25kB28Wwa2Q9UtWE_seCCN4rKDN6K_fkwsx8YvvXn4fpQOmrxhIQgZrDkuqs8g43q-ZrvsOtKBoUq48-QcRr3X8IHUGegXRouF3y43w",
"width" : 695
}
],
"place_id" : "ChIJUT0oSHRteYgR2Qh_T5F-jHQ",
"price_level" : 3,
"reference" : "CoQBfAAAACmYowpVMcpvmBr145AolKzavU4SdyUcky8THSq2i3Ip1QymtiaXYTdc3g6N7oFcRjKqoeud5_Fm3rNIf3u06k9oYEg50tFq9eqxQx6RjFFSdTpKKsMmtUIMItEKttEUlEJ0547UONEA2eZoIB6tU_SpR1NdAEJn3hgko_HIAr1ZEhCh8D4vX5LlLZCqbXyzNJ6cGhQs7tht72l7vI2gB76fSUBcQgJGrA",
"types" : [ "home_goods_store", "hardware_store", "store", "establishment" ],
"vicinity" : "1234 S 2nd St, Union City"
},
{
"geometry" : {
"location" : {
"lat" : 36.422949,
"lng" : -89.057303
}
},
"name" : "Main Street Union City Inc",
"place_id" : "ChIJ-x4yPnhteYgRx1FWBXkWxus",
"reference" : "CoQBfQAAAHLx1vp7aheY1hXZrYCqioCL9AGuIOhbjLjekog1lYvOpNJQDdVrX-MlroOVnyHEEYz71mDVif2eER-daP4AFou3B8746fGcVcO-LdcmzYK9AbSpsh-619REM0wU6_QDm14SIRFG25PQ3Wshb_GFioyYDcOmlDVdHZDKu8AZGXz2EhAZKRQaoj3svdHmFuf5S0ilGhT2jvPtbczu7ldaWksTAfWkoykdFQ",
"types" : [ "establishment" ],
"vicinity" : "210 S 1st St, Union City"
}
],
"status" : "OK"
}
EOD;

// WHAT HAVE WE GOT?
\$obj = json_decode(\$jso);
var_dump(\$obj);

// IF DECODING FAILS?
if (!\$obj) echo json_last_error_message();

function json_last_error_message()
{
static \$errors = array
( JSON_ERROR_NONE           => null
, JSON_ERROR_DEPTH          => 'Maximum stack depth exceeded'
, JSON_ERROR_STATE_MISMATCH => 'Underflow or the modes mismatch'
, JSON_ERROR_CTRL_CHAR      => 'Unexpected control character found'
, JSON_ERROR_SYNTAX         => 'Syntax error, malformed JSON'
, JSON_ERROR_UTF8           => 'Malformed UTF-8 characters, possibly incorrectly encoded'
)
;
// ADD THESE AT PHP 5.5+ OR USE json_last_error_msg()
if (defined('JSON_ERROR_RECURSION'))        \$errors[JSON_ERROR_RECURSION]        = 'One or more recursive references in the value to be encoded';
if (defined('JSON_ERROR_INF_OR_NAN'))       \$errors[JSON_ERROR_INF_OR_NAN]       = 'One or more NAN or INF values in the value to be encoded';
if (defined('JSON_ERROR_UNSUPPORTED_TYPE')) \$errors[JSON_ERROR_UNSUPPORTED_TYPE] = 'A value of a type that cannot be encoded was given';

\$error = json_last_error();
return array_key_exists(\$error, \$errors)
? \$errors[\$error]
: "Unknown error ({\$error})"
;
}
``````
Commented:
Regarding this statement:

How do you know whether json_decode() worked or not?
http://php.net/manual/en/function.json-last-error.php

Experts Exchange Solution brought to you by

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

###### It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PHP

From novice to tech pro — start learning today.