首页 > 代码库 > PHP小函数集-篇一

PHP小函数集-篇一

一、 验证

 

 

    /**
     * 判断用户名是否规范
     */
    function is_username($username)
    {
        if (preg_match("/^[a-zA-Z]{1}([0-9a-zA-Z]|[._]){3,19}$/",$username))
        {
            return true;
        }
    }

 

    /**
     * 判断密码是否规范
     */
    function is_password($password)
    {
        if (preg_match("/^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,22}$/",$password))
        {
            return true;
        }
    }

 

    /**
     * 判断是否为数字
     */
    function is_number($number)
    {
        if (preg_match("/^[0-9]*[1-9][0-9]*$/", $number))
        {
            return true;
        }
    }

 

    /**
     * 判断是否为邮件地址
     */
    function is_email($email)
    {
        if (preg_match("/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/", $email))
        {
            return true;
        }
    }

 

    /**
     * 判断是否为字母
     */
    function is_letter($letter)
    {
        if (preg_match("/^[a-z]+$/", $letter))
        {
            return true;
        }
    }

 

    /**
     * 验证文本域输入的内容
     */
    function is_text($text)
    {
        if (preg_match("/^[\x{4e00}-\x{9fa5}a-zA-Z0-9,,。.??!!*-_\s]+$/u", $text))
        {
            return true;
        }
    }

 

    /**
     * 验证文本框输入的内容
     */
    function is_textarea($textarea)
    {
        if (preg_match("/^[\x{4e00}-\x{9fa5}a-zA-Z0-9,,。.??!!*-_@=#\s\n\r]+$/u", $textarea))
        {
            return true;
        }
    }

 

 

    /**
     * 判断 文件/目录 是否可写
     */
    function check_writeable($file)
    {
        if (file_exists($file))
        { 
            if (is_dir($file))
            {
                $dir = $file;
                if ($fp = @fopen("$dir/test.txt", ‘w‘))
                {
                    @fclose($fp);
                    @unlink("$dir/test.txt");
                    $writeable = 1;
                }
                else
                {
                    $writeable = 0;
                }
            }
            else
            {
                if ($fp = @fopen($file, ‘a+‘))
                {
                    @fclose($fp);
                    $writeable = 1;
                }
                else
                {
                    $writeable = 0;
                }
            }
        }
        else
        {
            $writeable = 2;
        }
    
        return $writeable;
    }

 

    /**
     +----------------------------------------------------------
     * 递归方式的对变量中的特殊字符进行转义
     +----------------------------------------------------------
     */
    function addslashes_deep($value)
    {
        if (empty ($value))
        {
            return $value;
        }

        if (is_array($value))
        {
            foreach ((array) $value as $k => $v)
            {
                unset ($value[$k]);
                $k = addslashes($k);
                if (is_array($v))
                    $value[$k] = addslashes_deep($v);
                else
                    $value[$k] = addslashes($v);
            }
        }
        else
        {
            $value = addslashes($value);
        }
        return $value;
    }

    /**
     +----------------------------------------------------------
     * 递归方式的对变量中的特殊字符去除转义
     +----------------------------------------------------------
     */
    function stripslashes_deep($value)
    {
        if (empty ($value))
        {
            return $value;
        }

        if (is_array($value))
        {
            foreach ((array) $value as $k => $v)
            {
                unset ($value[$k]);
                $k = stripslashes($k);
                if (is_array($v))
                {
                    $value[$k] = stripslashes_deep($v);
                }
                else
                {
                    $value[$k] = stripslashes($v);
                }
            }
        }
        else
        {
            $value = stripslashes($value);
        }
        return $value;
    }

    /**
     +----------------------------------------------------------
     * 交互数据转义操作
     +----------------------------------------------------------
     */
    function dou_magic_quotes()
    {
        if (!@ get_magic_quotes_gpc())
        {
            if (!empty ($_GET))
                $_GET = addslashes_deep($_GET);
            if (!empty ($_POST))
                $_POST = addslashes_deep($_POST);
            $_COOKIE = addslashes_deep($_COOKIE);
            $_REQUEST = addslashes_deep($_REQUEST);
        }
    }

 

    /**
     +----------------------------------------------------------
     * 获取真实IP地址
     +----------------------------------------------------------
     */
    function get_ip()
    {
        $ip = false;
        if (!empty ($_SERVER["HTTP_CLIENT_IP"]))
        {
            $ip = $_SERVER["HTTP_CLIENT_IP"];
        }
        if (!empty ($_SERVER[‘HTTP_X_FORWARDED_FOR‘]))
        {
            $ips = explode(", ", $_SERVER[‘HTTP_X_FORWARDED_FOR‘]);
            if ($ip)
            {
                array_unshift($ips, $ip);
                $ip = FALSE;
            }
            for ($i = 0; $i < count($ips); $i++)
            {
                if (!preg_match("/^(10|172\.16|192\.168)\./", $ips[$i]))
                {
                    $ip = $ips[$i];
                    break;
                }
            }
        }
        return ($ip ? $ip : $_SERVER[‘REMOTE_ADDR‘]);
    }