benchmark->mark('statsStart'); //get browser info $q->load('qoob\utils\xbd'); $info = $q->xbd->browser(); //get geo location from ipaddress $q->load("qoob\utils\location\geoip"); $info["location"] = $q->geoip->getCountry($info["ipaddress"]); //get request info $info['time'] = @time(); $info['domain'] = $this->getDomain(\library::exists('QOOB.domain')?\library::get('QOOB.domain'):dirname($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"])); $info['uri'] = \library::exists('REQUEST.uri')?\library::get('REQUEST.uri'):rtrim(str_replace(dirname($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]), '', 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']), '/'); $info['url_checksum'] = crc32($info['domain'].$info['uri']); $info['verb'] = \library::exists('REQUEST.verb')?\library::get('REQUEST.verb'):'unknown'; $info['ajax'] = \library::exists('REQUEST.ajax')?(\library::get('REQUEST.ajax')=='AJAX'?1:0):0; $info['status'] = \library::exists('STATUS.code')?\library::get('STATUS.code'):500; $info['referer'] = filter_var(isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'', FILTER_VALIDATE_URL)?filter_var($_SERVER['HTTP_REFERER'], FILTER_SANITIZE_URL):''; $info['ref_domain'] = $this->getDomain($info['referer']); $info['ref_checksum'] = crc32($info['ref_domain']); //save info $q->load('app\model\statsModel'); $q->statsModel->save($info); $q->benchmark->mark('statsEnd'); } function getDomain($url) { return preg_replace('/(^([^:]+):\/\/(www\.)?|(:\d+)?\/.*$)/', '', $url); } } ?>