Apr
11

一些常用验证函数     2009

 09:46    478    0   noel 程序 代码 源码 不指定 | |
一些常用验证函数

<?
function is_qq($str){
return preg_match("/^[1-9]\d{4,8}$/", $str);
}

function is_zip($str){
return preg_match("/^[1-9]\d{5}$/", $str);
}

function is_idcard($str){
return preg_match("/^\d{15}(\d{2}[A-Za-z0-9])?$/", $str);
}

function is_chinese($str){
return ereg("^[".chr(0xa1)."-".chr(0xff)."]+$",$str);
}

function is_english($str){
return preg_match("/^[A-Za-z]+$/", $str);
}

function is_mobile($str){
return preg_match("/^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/", $str);
}

function is_phone($str){
return preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/", $str);
}

?>


收藏主页
<?
function fav($url,$name){
  return "onclick='window.external.AddFavorite(\"$url\",\"$name\")' target='_self'";
}
?>

设为主页
<?
function home($url){
    return "onclick='this.style.behavior=&quot;url(#default#homepage)&quot;;this.setHomePage(\"".$url."\")' target='_self'";
}
?>


检测URL地址有效性
<?
function is_url($str){
    return preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"])*$/", $str);
}
?>

检查是否为一个合法的时间格式
<?
/**
* 检查是否为一个合法的时间格式
*
* @access  public
* @param   string  $time
* @return  void
*/
function is_time($time)
{
    $pattern = '/[\d]{4}-[\d]{1,2}-[\d]{1,2}\s[\d]{1,2}:[\d]{1,2}:[\d]{1,2}/';

    return preg_match($pattern, $time);
}
?>


验证输入的邮件地址是否合法
<?
/**
* 验证输入的邮件地址是否合法
*
* @access  public
* @param   string      $email      需要验证的邮件地址
*
* @return bool
*/
function is_email($user_email)
{
        $chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";
        if (strpos($user_email, '@') !== false && strpos($user_email, '.') !== false)
     {
        if (preg_match($chars, $user_email))
        {
            return true;
        } else
        {
            return false;
        }
    } else
        {
            return false;
        }
}
?>


对要输入的字符串进行转换
<?
function char_cv($string)
{
return nl2br(str_replace(' ', '&nbsp;', htmlspecialchars($string, ENT_QUOTES)));
}
?>

对要输出的字符串进行反转换
<?
function Char_rev($msg){
    $msg = str_replace('&','&amp;',$msg);
    $msg = str_replace(' ','&nbsp;',$msg);
    $msg = str_replace('&quot;','"',$msg);
    $msg = str_replace("&#39;","'",$msg);
    $msg = str_replace("&lt;","<",$msg);
    $msg = str_replace("&gt;",">",$msg);
    $msg = str_replace("   &nbsp;  &nbsp;","\t",$msg);
    $msg = str_replace("","\r",$msg);
    $msg = str_replace(" &nbsp; ","   ",$msg);
    $msg = str_replace("<br>","\n",$msg);
    $msg = str_replace("<br />","\n",$msg);
    return $msg;
}
?>

计算字符串的长度(汉字按照两个字符计算)
<?
function str_len($str)
{
    $length = strlen(preg_replace('/[\x00-\x7F]/', '', $str));

    if ($length)
    {
        return strlen($str) - $length + intval($length / 3) * 2;
    }
    else
    {
        return strlen($str);
    }
}

?>


截取指定长度字符串
<?
function sub_str($str, $length = 0, $append = true)
{
    $str = trim($str);
    $strlength = strlen($str);

    if ($length == 0 || $length >= $strlength)
    {
        return $str;
    }

获得用户操作系统的换行符
<?
function get_crlf()
{
/* LF (Line Feed, 0x0A, \N) 和 CR(Carriage Return, 0x0D, \R) */
    if (stristr($_SERVER['HTTP_USER_AGENT'], 'Win'))
    {
        $the_crlf = '\r\n';
    }
    elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Mac'))
    {
        $the_crlf = '\r'; // for old MAC OS
    }
    else
    {
        $the_crlf = '\n';
    }

    return $the_crlf;
}
?>

    elseif ($length < 0)
    {
        $length = $strlength + $length;
        if ($length < 0)
        {
            $length = $strlength;
        }
    }

    if (function_exists('mb_substr'))
    {
        $newstr = mb_substr($str, 0, $length, EC_CHARSET);
    }
    elseif (function_exists('iconv_substr'))
    {
        $newstr = iconv_substr($str, 0, $length, EC_CHARSET);
    }
    else
    {
        $newstr = trim_right(substr($str, 0, $length));
    }

    if ($append && $str != $newstr)
    {
        $newstr .= '...';
    }

    return $newstr;
}
?>

获得用户的真实IP地址
<?
/**
* 获得用户的真实IP地址
*
* @access  public
* @return  string
*/
function real_ip()
{
    static $realip = NULL;

    if ($realip !== NULL)
    {
        return $realip;
    }

    if (isset($_SERVER))
    {
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        {
            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

            /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
            foreach ($arr AS $ip)
            {
                $ip = trim($ip);

                if ($ip != 'unknown')
                {
                    $realip = $ip;

                    break;
                }
            }
        }
        elseif (isset($_SERVER['HTTP_CLIENT_IP']))
        {
            $realip = $_SERVER['HTTP_CLIENT_IP'];
        }
        else
        {
            if (isset($_SERVER['REMOTE_ADDR']))
            {
                $realip = $_SERVER['REMOTE_ADDR'];
            }
            else
            {
                $realip = '0.0.0.0';
            }
        }
    }
    else
    {
        if (getenv('HTTP_X_FORWARDED_FOR'))
        {
            $realip = getenv('HTTP_X_FORWARDED_FOR');
        }
        elseif (getenv('HTTP_CLIENT_IP'))
        {
            $realip = getenv('HTTP_CLIENT_IP');
        }
        else
        {
            $realip = getenv('REMOTE_ADDR');
        }
    }

    preg_match("/[\d\.]{7,15}/", $realip, $onlineip);
    $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';

    return $realip;
}
?>

对输入JS进行转换
<?
function str_safe($string)
{
    $searcharr = array("/(javascript|jscript|js|vbscript|vbs|about):/i","/on(mouse|exit|error|click|dblclick|key|load|unload|change|move|submit|reset|cut|copy|select|start|stop)/i","/<script([^>]*)>/i","/<iframe([^>]*)>/i","/<frame([^>]*)>/i","/<link([^>]*)>/i","/@import/i");
    $replacearr = array("\\1\n:","on\n\\1","&lt;script\\1&gt;","&lt;iframe\\1&gt;","&lt;frame\\1&gt;","&lt;link\\1&gt;","@\nimport");
    $string = preg_replace($searcharr,$replacearr,$string);
    $string = str_replace("&#","&\n#",$string);
    return $string;
}
?>

作者:noel@淘宝网女装新款秋装连衣裙裤子外套上衣_2012时尚女装新款 Ecmall二次开发-PHP技术
地址:http://www.laohucheng.com/post/292/
版权所有©转载时必须以链接形式注明作者和原始出处及本声明!

Tags: 引用(0)
发表评论
昵称 [注册]
密码 游客无需密码
网址
电邮
打开HTML 打开UBB 打开表情 隐藏 记住我