<?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);
}
?>