<?php $_reqUrl = $_POST['url']; //$_reqUrl = 'http://gis.eyezeek.atlasct.com/gis/geocoder?q=;city|תaaaל אביב;neighborhood|לב העיר;street|לונץ;&lang=heb&countrycode=isr&key=Gu5rdksS86zC39Sa&output=KML&api=3.0&projection=latlong&ie=utf-8'; if (!$_reqUrl) { die("error in request"); } include_once 'Reporting.php'; Reporting::LogIncommingRequest($_reqUrl); function cleanUrlAddress($gq) { $params = array(); parse_str($gq, $params); return http_build_query($params); } $_fixedUrlFragments = array(parse_url($_reqUrl, PHP_URL_SCHEME), '://', parse_url($_reqUrl, PHP_URL_HOST), parse_url($_reqUrl, PHP_URL_PATH), '?', str_replace('%5C%5C%5C%5C%5C%5C%5C', '', cleanUrlAddress(parse_url($_reqUrl, PHP_URL_QUERY)))); $_reqUrl = implode('', $_fixedUrlFragments); include_once 'GoogleProxyMongo.php'; $_cacheLookup = GoogleProxyMongo::findUrl($_reqUrl); if ($_cacheLookup) { Reporting::LogCacheHit($_reqUrl); die($_cacheLookup); } else { $_googleResponse = file_get_contents($_reqUrl, 0, null, null); GoogleProxyMongo::storeUrl($_reqUrl, $_googleResponse); die($_googleResponse); }
private static function _setup() { if (self::$setup) { return; } self::$setup = true; $connected = false; while (!$connected) { try { $_mdb = new Mongo(); self::$cached = $_mdb->selectDB("googleproxy")->cached; self::$cached->ensureIndex(array('key' => 1), array('unique' => true, 'background' => true)); $connected = true; } catch (MongoConnectionException $e) { //echo $e->getMessage(); sleep(1); } } }