<?php
if (!function_exists('handler_exception')) {
/**
* Handler Error
* @param $errno
* @param $errstr
* @param $errfile
* @param $errline
*/
function handler_error($errno, $errstr, $errfile, $errline){
\System\Core\DefaultErrors::getInstance()->handlerError($errno, $errstr, $errfile, $errline);
}
}
if (!function_exists('handler_exception')) {
/**
* Handler Error
* @param Exception $Execption
*/
function handler_exception($Execption){
\System\Core\DefaultErrors::getInstance()->ErrorXXX($Execption->getCode(), $Execption);
}
}
if (!function_exists('shutdownHandler')) {
/**
* Handler Parse Error
*/
function shutdownHandler(){
$lasterror = error_get_last();
if (isset($lasterror['type']))
switch ($lasterror['type']) {
case E_ERROR:
case E_CORE_ERROR:
case E_COMPILE_ERROR:
case E_USER_ERROR:
case E_RECOVERABLE_ERROR:
case E_CORE_WARNING:
case E_COMPILE_WARNING:
case E_PARSE:
handler_error($lasterror['type'], $lasterror['message'], $lasterror['file'], $lasterror['line']);
}
}
}
if (!function_exists('loaderFastApp')) {
/**
* Autoload Class
* @param $class
*/
function loaderFastApp($class){
$filename = BASE_PATH . DIRECTORY_SEPARATOR . str_replace('\\', '/', $class) . '.php';
$filename = str_replace("//", "/", $filename);
if (file_exists($filename)) {
require_once($filename);
} else {
$filename = BASE_PATH_THIRD . DIRECTORY_SEPARATOR . str_replace('\\', '/', $class) . '.php';
if (file_exists($filename)) {
require_once($filename);
}
}
}
}
if (!function_exists('getJsonPost')) {
/**
* Obter dados em JSON envidos bo Body de um requisição
* @return mixed
*/
function getJsonPost(){
return json_decode(file_get_contents('php://input'), 1);
}
}
if (!function_exists('getallheaders')) {
/**
* Obter todos os cabeçalhos passados na requisição
* @return array
*/
function getallheaders(){
$headers = array();
$copy_server = array(
'CONTENT_TYPE' => 'Content-Type',
'CONTENT_LENGTH' => 'Content-Length',
'CONTENT_MD5' => 'Content-Md5',
);
foreach ($_SERVER as $key => $value) {
if (substr($key, 0, 5) === 'HTTP_') {
$key = substr($key, 5);
if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) {
$key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key))));
$headers[$key] = $value;
}
} elseif (isset($copy_server[$key])) {
$headers[$copy_server[$key]] = $value;
}
}
if (!isset($headers['Authorization'])) {
if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
$headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
} elseif (isset($_SERVER['PHP_AUTH_USER'])) {
$basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
$headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass);
} elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) {
$headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST'];
}
}
return $headers;
}
}
if (!function_exists("getViewPhp")){
/**
* Get HTML template PHP
* @param $_file
* @param array $data
*/
function getViewPhp($_file, $data = array()){
extract($data);
include BASE_PATH . "Views/" . $_file;
}
}
if (!function_exists("getClientIpServer")){
/**
* @return mixed|null
*/
function getClientIpServer() {
$ipaddress = null;
if (isset($_SERVER['HTTP_CLIENT_IP']))
$ipaddress = $_SERVER['HTTP_CLIENT_IP'];
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_X_FORWARDED']))
$ipaddress = $_SERVER['HTTP_X_FORWARDED'];
else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_FORWARDED']))
$ipaddress = $_SERVER['HTTP_FORWARDED'];
else if(isset($_SERVER['REMOTE_ADDR']))
$ipaddress = $_SERVER['REMOTE_ADDR'];
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
}
if (!function_exists("verifySo")){
/**
* @param null $u_agent
* @param null $ip
* @return array
*/
function verifySo($u_agent = null, $ip = null){
if ($ip == null){
$ip = getClientIpServer();
}
if ($u_agent == null){
$u_agent = $_SERVER['HTTP_USER_AGENT'];
}
$bname = 'Unknown';
$platform = 'Unknown';
$version = "";
if (preg_match('/linux/i', $u_agent)) {
$platform = 'Linux';
}elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
$platform = 'Mac';
}elseif (preg_match('/windows|win32/i', $u_agent)) {
$platform = 'Windows';
}
if(preg_match('/Edge/i',$u_agent)) {
$bname = 'Edge';
$ub = "Edge";
}elseif(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) {
$bname = 'Internet Explorer';
$ub = "MSIE";
}elseif(preg_match('/Trident/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) {
$bname = 'Internet Explorer';
$ub = "Trident";
}elseif(preg_match('/Firefox/i',$u_agent)) {
$bname = 'Mozilla Firefox';
$ub = "Firefox";
}elseif(preg_match('/Chrome/i',$u_agent)) {
$bname = 'Google Chrome';
$ub = "Chrome";
}elseif(preg_match('/AppleWebKit/i',$u_agent)) {
$bname = 'AppleWebKit';
$ub = "Opera";
}elseif(preg_match('/Safari/i',$u_agent)) {
$bname = 'Apple Safari';
$ub = "Safari";
}elseif(preg_match('/Netscape/i',$u_agent)) {
$bname = 'Netscape';
$ub = "Netscape";
}
$known = array('Version', $ub, 'other');
$pattern = '#(?<browser>' . join('|', $known) .
')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
if (!preg_match_all($pattern, $u_agent, $matches)) {
}
$i = count($matches['browser']);
if ($i != 1) {
if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
$version= $matches['version'][0];
}else{
$version= $matches['version'][1];
}
}else{
$version= $matches['version'][0];
}
if ($ub == "Trident"){
preg_match('#rv:([0-9.|a-zA-Z.]*)#',$u_agent, $versions);
$version = $versions[1];
}
// check if we have a number
if ($version==null || $version=="") {$version="?";}
$Browser = array(
'ip' => $ip,
'userAgent' => $u_agent,
'name' => $bname,
'version' => $version,
'platform' => $platform,
'pattern' => $pattern
);
return $Browser;
}
}
|