View file v4/include/functions_general.php

File size: 4.33Kb
<?php

function get_real_ip()
{
	$keyname_ua_arr = array('HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP','HTTP_X_REAL_IP', 'REMOTE_ADDR');
	foreach ($keyname_ua_arr as $keyname_ua) {
		if (isset($_SERVER[$keyname_ua]) && !empty($_SERVER[$keyname_ua])) {
			$ip = $_SERVER[$keyname_ua];
			break;
		}
	}
	if (strstr($IP, ',')) {
		$ips = explode(',', $ip);
		$ip = $ips[0];
	}
	if(valid_ip($ip)==false)$ip = $_SERVER["REMOTE_ADDR"];
	return $ip;
}

function clean_real_ip()
{
	$ip = get_real_ip();
	list($ip1,$ip2,$ip3,$ip4) = explode('.', $ip);
	$ip = $ip1.'.'.$ip2.'.'.$ip3.'.0';
	return $ip;
}

function valid_ip($ip)
{
	return ( ! preg_match( "/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/", $ip)) ? FALSE : TRUE;
}

function get_real_ua()
{
	$keyname_ua_arr = array('HTTP_X_DEVICE_USER_AGENT', 'HTTP_X_OPERAMINI_PHONE_UA','HTTP_X_BOLT_PHONE_UA', 'HTTP_X_MOBILE_UA', 'HTTP_USER_AGENT');
	foreach ($keyname_ua_arr as $keyname_ua) {
		if (isset($_SERVER[$keyname_ua]) && !empty($_SERVER[$keyname_ua])) {
			$ua = $_SERVER[$keyname_ua];
			break;
		}
	}
	return $ua;
}
function clean_real_ua()
{
	$ua = get_real_ua();
	$ua = preg_replace('/[^a-zA-Z0-9\-\.\_\/\^]/', '', $ua);
	return $ua;
}

function uuid()
{
	return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
	mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
	mt_rand( 0, 0x0fff ) | 0x4000,
	mt_rand( 0, 0x3fff ) | 0x8000,
	mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ) );
}

function gumtcha_check($code, $delete=false) 
{ 
	$code = trim($code); 
	$code = str_replace('.','',$code); 
	$code = strtolower($code); 
	if (preg_match("/[^\da-z]+/", $code)) return false; 
	elseif(strlen($code)<2)return false; 
	elseif(file_exists('./include/gum_tmp/captcha/'.$code)) 
	{
		if($delete==true)@unlink('./include/gum_tmp/captcha/'.$code); 
		return true; 
	}
	else return false; 
} 


function gum_banned_words($str) 
{ 
    $words = array('wapking','videowap','http','hotking', 'masalamob');
    $found_words = gum_banned_words_check($str,$words); 
    //Developed by gumslone from coding-talk.com 
    foreach ($found_words as $word) { 
        $word_length = strlen($word); 
        $str_length = strlen($str); 
        $i = 0; 
        $n = 0; 
        while($i<$word_length) 
        { 
            if (preg_match('/[0-9A-Za-z]/',$str[$n])) 
            { 
                $find = "/".$word[$i]."/i"; 
                if (preg_match($find, $str[$n])) 
                { 
                    if($i==0) $result['start'] = $n; 
                    if($i==($word_length-1)) 
                    { 
                        $result['end'] = $n+1; 
                        break; 
                    } 
                    $i++; 
                } 
                else  
                { 
                    $i=0; 
                } 
            } 
            $n++; 
            if($n>$str_length)break;//prevent infinite loop 
        } 
        $str = substr($str, 0, $result['start']).substr($str, $result['end']); 
    } 
    $found_word2 = gum_banned_words_check($str,$words); 
    if(is_array($found_word2)) $str = gum_banned_words($str,$found_word2); 
     
    return $str; 
} 
function gum_banned_words_check($str, $words) 
{ 
    $clean_string = preg_replace('/[^[:alnum:]]/', '', $str); 
    foreach ($words as $word) { 
        $find = "/".$word."/i"; 
        if (preg_match($find, $clean_string)) $found_words[] = $word; 
    } 
    return $found_words; 
} 

function current_load($num=1)
{
	$avgs = sys_getloadavg();
	return $avgs[$num];
}

function rand_string( $length ) { 
	#$chars = "abcdefghijklmnopqrstuvwxyz123456789";     
	$chars = "abcdefghijklmnpqrstwxyz12345679";
	$size = strlen( $chars ); 
	for( $i = 0; $i < $length; $i++ )
	{
		$str .= $chars[ rand( 0, $size - 1 ) ];
	}
	
	return $str; 
}

function prepare_message($vars)
{
	unset($vars['error']);
	foreach($vars AS $var)
	{
		$out .= $var.'<br/>';
	}
	return $out;
}


function mb_unserialize($serial_str) { 
	$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str);
	return unserialize($out); 
}

function remove_item_by_value($array, $val = '', $preserve_keys = true) {
	if (empty($array) || !is_array($array)) return false;
	if (!in_array($val, $array)) return $array;

	foreach($array as $key => $value) {
		if ($value == $val) unset($array[$key]);
	}

	return ($preserve_keys === true) ? $array : array_values($array);
}

?>