$v) {
            my_stripslashes($a[$k]);
        }
    } else {
        $a = stripslashes($a);
    }
}
#
# Don't use this.
#
function undo_magic_quotes(&$a)
{
    if (get_magic_quotes_gpc()) {
        global $HTTP_POST_VARS, $HTTP_GET_VARS;
        foreach ($HTTP_POST_VARS as $k => $v) {
            stripslashes_array($HTTP_POST_VARS[$k]);
            global $$k;
            stripslashes_array($$k);
        }
        foreach ($HTTP_GET_VARS as $k => $v) {
            stripslashes_array($HTTP_GET_VARS[$k]);
            global $$k;
            stripslashes_array($$k);
        }
    }
}
#
# Returns TRUE if argument contains only alphabetic characters.
#
function is_alpha($v)
{
    #return (eregi('[^A-Z]',$v) ? false : true) ;
    #return (preg_match('/[^A-Z]'.'/i',$v,PCRE_CASELESS) ? false : true) ; # Replaced eregi() with preg_match()
    return (preg_match('/[^A-Z]/i', $v) ? false : true) ;
}
#
# Returns TRUE if argument contains only numeric characters.
#
function is_num($v)
{
    #return (eregi('[^0-9]',$v) ? false : true) ;
    return (preg_match('/[^0-9]/', $v) ? false : true) ; # Replaced eregi() with preg_match()
}
#
# Returns TRUE if argument contains only alphanumeric characters.
#
function is_alnum($v)
{
    #return (eregi('[^A-Z0-9]',$v) ? false : true) ;
    return (preg_match('/[^A-Z0-9]/i', $v) ? false : true) ; # Replaced eregi() with preg_match()
}
#
# Returns TRUE if argument is in proper e-mail address format.
#
function is_email($v)
{
    #return (eregi('^[^@ ]+\@[^@ ]+\.[A-Z]{2,4}$',$v) ? true : false);
    return (preg_match('/^[^@ ]+\@[^@ ]+\.[A-Z]{2,4}$'.'/i', $v) ? true : false); # Replaced eregi() with preg_match()
}
#
# Returns True if the given string is a IP address
#
function is_ip($ip = null)
{
    if (!$ip or strlen(trim($ip)) == 0) {
        return false;
    }
    $ip=trim($ip);
    if (preg_match("/^[0-9]{1,3}(.[0-9]{1,3}){3}$/", $ip)) {
        foreach (explode(".", $ip) as $block) {
            if ($block<0 || $block>255) {
                return false;
            }
        }
        return true;
    }
    return false;
}
#
# Returns True if the given string is a valid FQDN
#
function is_fqdn($FQDN)
{
    // remove leading wildcard characters if exist
    $FQDN = preg_replace('/^\*\./', '', $FQDN, 1);
    return (!empty($FQDN) && preg_match('/^(?=.{1,254}$)((?=[a-z0-9-]{1,63}\.)(xn--+)?[a-z0-9]+(-[a-z0-9]+)*\.)+(xn--+)?[a-z0-9]{2,63}$/i', $FQDN) > 0);
}
#
# Checks regexp in every element of an array, returns TRUE as soon
# as a match is found.
#
function eregi_array($regexp, $arr)
{
    foreach ($arr as $elem) {
        #if (eregi($regexp,$elem))
        if (! preg_match('/^\/.*\/$/', $regexp)) { # if it doesn't begin and end with '/'
            $regexp = '/'.$regexp.'/'; # pad the $regexp with '/' to prepare for preg_match()
        }
        if (preg_match($regexp.'i', $elem)) { # Replaced eregi() with preg_match()
            return true;
        }
    }
    return false;
}
#
# Reads entire file into a string
# Same as file_get_contents in php >= 4.3.0
#
function my_file_get_contents($f)
{
    return implode('', file($f));
}
function getOSInformation()
{
    if (false == function_exists("shell_exec")) {
        return null;
    }
    $os = shell_exec('cat /etc/redhat-release');
    if (preg_match('/^SME Server/', $os)) {
        return true;
    } else {
        return null;
    }
}