常用的php各种验证正则表达式程序,自定义函数

 代码如下

<pre>
<?php

class validator
 
{
 
    /**
 
     * Checks that a field is exactly the right length.
 
     * Constructer PHP4     
 
     */
 
    function validator()
 
    {
 
    }
 
    /**
 
     * check a number optional -,+,. values
 
     * @param   string        
 
     * @return  boolean
 
     */
 
    function is_numeric($val)
 
    {
 
        return (bool)preg_match('/^[-+]?[0-9]*.?[0-9]+$/', $val);
 
    }
 
    /**
 
     * valid email     
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_email($val)
 
    {
 
        return (bool)(preg_match("/^([a-z0-9+_-]+)(.[a-z0-9+_-]+)*@([a-z0-9-]+.)+[a-z]{2,6}$/i",
 
            $val));
 
    }
 
    /**
 
     * Valid URL or web address
 
     * @param   string      
 
     * @return  boolean
 
     */
 
    function is_url($val)
 
    {
 
        return (bool)preg_match("^((((https?|ftps?|gopher|telnet|nntp)://)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@&=+$,A-Za-z0-9])+)([).!';/?:,][[:blank:]])?$",
 
            $val);
 
    }
 
    /**
 
     * Valid IP address
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_ipaddress($val)
 
    {
 
        return (bool)preg_match("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/",
 
            $val);
 
    }
 
    /**
 
     * Matches only alpha letters
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_alpha($val)
 
    {
 
        return (bool)preg_match("/^([a-zA-Z])+$/i", $val);
 
    }
 
    /**
 
     * Matches alpha and numbers only
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_alphanumeric($val)
 
    {
 
        return (bool)preg_match("/^([a-zA-Z0-9])+$/i", $val);
 
    }
 
    /**
 
     * Matches alpha ,numbers,-,_ values
 
     * @param   string  
 
     * @return  boolean
 
     */
 
    function is_alphanumericdash($val)
 
    {
 
        return (bool)preg_match("/^([-a-zA-Z0-9_-])+$/i", $val);
 
    }
 
    /**
 
     * Matches alpha and dashes like -,_
 
     * @param   string  
 
     * @return  boolean
 
     */
 
    function is_alphadash($val)
 
    {
 
        return (bool)preg_match("/^([A-Za-z_-])+$/i", $val);
 
    }
 
    /**
 
     *Matches exactly number
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_integer($val)
 
    {
 
        return is_int($val);
 
    }
 
    /**
 
     * Valid Credit Card
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_creditcard($val)
 
    {
 
        return (bool)preg_match("/^((4d{3})|(5[1-5]d{2})|(6011)|(7d{3}))-?d{4}-?d{4}-?d{4}|3[4,7]d{13}$/",
 
            $val);
 
    }
 
    /**
 
     * check given string length is between given range 
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_rangelength($val, $min = '', $max = '')
 
    {
 
        return (strlen($val) >= $min and strlen($val) <= $max);
 
    }
 
    /**
 
     *Check the string length has minimum length
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_minlength($val, $min)
 
    {
 
        return (strlen($val) >= (int)$min);
 
    }
 
    /**
 
     * check string length exceeds maximum length     
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_maxlength($val, $max)
 
    {
 
        return (strlen($val) <= (int)$max);
 
    }
 
    /**
 
     * check given number exceeds max values   
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_maxvalue($number,$max)
 
    {
 
         return ($number >$max);
 
    }
 
    /**
 
     * check given number below value   
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_minvalue($number)
 
    {
 
        return ($number < $max);
 
    }
 
    /**
 
     * check given number between given values
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_rangevalue($number,$min,$max)
 
    {
 
        return ($number >$min and $number<$max);
 
    }
 
    /**
 
     * check for exactly length of string
 
     * @param   string  
 
     * @return  boolean
 
     */
 
    function is_length($val, $length)
 
    {
 
        return (strlen($val) == (int)$length);
 
    }
 
    /**
 
     * check decimal with . is optional and after decimal places up to 6th precision
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_decimal($val)
 
    {
 
        return (bool)preg_match("/^d+(.d{1,6})?$/'", $val);
 
    }
 
    /**
 
     * Valid hexadecimal color ,that may have #,
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_hexcolor($color)
 
    {
 
        return (bool)preg_match('/^#?+[0-9a-f]{3}(?:[0-9a-f]{3})?$/i', $color);
 
    }
 
    /**
 
     * Matches  againest given regular expression ,including delimeters
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_regex($val, $expression)
 
    {
 
        return (bool)preg_match($expression, (string )$val);
 
    }
 
    /**
 
     * compares two any kind of values ,stictly
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_matches($val, $value)
 
    {
 
        return ($val === $value);
 
    }
 
    /**
 
     * check if field empty string ,orject,array
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_empty($val)
 
    {
 
        return in_array($val, array(null, false, '', array()), true);
 
    }
 
    /**
 
     * Check if given string matches any format date
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_date($val)
 
    {
 
        return (strtotime($val) !== false);
 
    }
 
    /**
 
     * check given string againest given array values
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_enum($val, $arr)
 
    {
 
        return in_array($val, $arr);
 
    }
 
    /**
 
     * Checks that a field matches a v2 md5 string
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_md5($val)
 
    {
 
        return (bool)preg_match("/[0-9a-f]{32}/i", $val);
 
    }
 
    /**
 
     * Matches base64 enoding string
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_base64($val)
 
    {
 
        return (bool)!preg_match('/[^a-zA-Z0-9/+=]/', $val);
 
    }
 
    /**
 
     * check if array has unique elements,it must have  minimum one element
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_unique($arr)
 
    {
 
        $arr = (array )$arr;
 
        $count1 = count($arr);
 
        $count2 = count(array_unique($arr));
 
        return (count1 != 0 and (count1 == $count2));
 
    }
 
    /**
 
     * Check is rgb color value
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_rgb($val)
 
    {
 
        return (bool)preg_match("/^(rgb(s*b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])bs*,s*b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])bs*,s*b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])bs*))|(rgb(s*(d?d%|100%)+s*,s*(d?d%|100%)+s*,s*(d?d%|100%)+s*))$/",
 
            $val);
 
    }
 
    /**
 
     * is given field is boolean value or not
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_boolean($val)
 
    {
 
        $booleans = array(1, 0, '1', '0', true, false, true, false);
 
        $literals = array('true', 'false', 'yes', 'no');
 
        foreach ($booleans as $bool) {
 
            if ($val === $bool)
 
                return true;
 
        }
 
        return in_array(strtolower($val), $literals);
 
    } 
 
    /**
 
     * A token that don't have any white space
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_token($val)
 
    {
 
        return (bool)!preg_match('/s/', $val);
 
    }
 
    /**
 
     * Checks that a field is exactly the right length.
 
     * @param   string   value
 
     * @link    not added to Windows until PHP 5.3.0
 
     * @return  boolean
 
     */
 
    function is_emaildomain($email)
 
    {
 
        return (bool)checkdnsrr(preg_replace('/^[^@]++@/', '', $email), 'MX');
 
    }
 
    /**
 
     * Matches a phone number that length optional numbers 7,10,11
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_phone($number, $lengths = null)
 
    {
 
        if (!is_array($lengths)) {
 
            $lengths = array(7, 10, 11);
 
        }
 
        $number = preg_replace('/D+/', '', $number);
 
        return in_array(strlen($number), $lengths);
 
    }
 
    /**
 
     * check given sting is UTF8 
 
     * @param   string  
 
     * @return  boolean
 
     */
 
    function is_utf8($val)
 
    {
 
        return preg_match('%(?:
 
        [xC2-xDF][x80-xBF]        
 
        |xE0[xA0-xBF][x80-xBF]               
 
        |[xE1-xECxEExEF][x80-xBF]{2}     
 
        |xED[x80-x9F][x80-xBF]               
 
        |xF0[x90-xBF][x80-xBF]{2}   
 
        |[xF1-xF3][x80-xBF]{3}                  
 
        |xF4[x80-x8F][x80-xBF]{2}    
 
        )+%xs', $val);
 
    }
 
    /**
 
     * Given sting is lower cased
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_lower($val)
 
    {
 
        return (bool)preg_match("/^[a-z]+$/", $val);
 
    }
 
    /**
 
     * Given string is upper cased?
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_upper($val)
 
    {
 
        return (bool)preg_match("/^[A-Z]+$/", $val);
 
    }
 
    /**
 
     * Checks that given value matches following country pin codes.     
 
     * at = austria
 
     * au = australia
 
     * ca = canada
 
     * de = german
 
     * ee = estonia
 
     * nl = netherlands
 
     * it = italy
 
     * pt = portugal
 
     * se = sweden
 
     * uk = united kingdom
 
     * us = united states
 
     * @param String   
 
     * @param String
 
     * @return  boolean
 
     */
 
    function is_pincode($val, $country = 'us')
 
    {
 
        $patterns = array('at' => '^[0-9]{4,4}$', 'au' => '^[2-9][0-9]{2,3}$', 'ca' =>
 
            '^[a-zA-Z].[0-9].[a-zA-Z].s[0-9].[a-zA-Z].[0-9].', 'de' => '^[0-9]{5,5}$', 'ee' =>
 
            '^[0-9]{5,5}$', 'nl' => '^[0-9]{4,4}s[a-zA-Z]{2,2}$', 'it' => '^[0-9]{5,5}$',
 
            'pt' => '^[0-9]{4,4}-[0-9]{3,3}$', 'se' => '^[0-9]{3,3}s[0-9]{2,2}$', 'uk' =>
 
            '^([A-Z]{1,2}[0-9]{1}[0-9A-Z]{0,1}) ?([0-9]{1}[A-Z]{1,2})$', 'us' =>
 
            '^[0-9]{5,5}[-]{0,1}[0-9]{4,4}$');
 
        if (!array_key_exists($country, $patterns))
 
            return false;
 
        return (bool)preg_match("/" . $patterns[$country] . "/", $val);
 
    }
 
    /**
 
     * Check given url really exists?
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_urlexists($link)
 
    {
 
        if (!$this->is_url($link))
 
            return false;
 
        return (bool)@fsockopen($link, 80, $errno, $errstr, 30);
 
    }
 
    /**
 
     * Check given sting has script tags
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_jssafe($val)
 
    {
 
        return (bool)(!preg_match("/<script[^>]*>[srn]*(<!--)?|(-->)?[srn]*</script>/",
 
            $val));
 
    }
 
    /**
 
     * given sting has html tags?
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_htmlsafe($val)
 
    {
 
        return (bool)(!preg_match("/<(.*)>.*</$1>/", $val));
 
    }
 
    /**
 
     * check given sring has multilines 
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_multiline($val)
 
    {
 
        return (bool)preg_match("/[nrt]+/", $val);
 
    }
 
    /**
 
     * check given array key element exists?
 
     * @param   string   
 
     * @return  boolean
 
     */
 
    function is_exists($val, $arr)
 
    {
 
        return isset($arr[$val]);
 
    }
 
    /**
 
     * is given string is ascii format?
 
     * @param   string        
 
     * @return  boolean
 
     */
 
    function is_ascii($val)
 
    {
 
        return !preg_match('/[^x00-x7F]/i', $val);
 
    }
 
    /**
 
     * Checks given value again MAC address of the computer
 
     * @param   string   value      
 
     * @return  boolean
 
     */
 
    function is_macaddress($val)
 
    {
 
        return (bool)preg_match('/^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/',
 
            $val);
 
    }
 
    /**
 
     * Checks given value matches us citizen social security number
 
     * @param   string         
 
     * @return  boolean
 
     */
 
    function is_usssn($val)
 
    {
 
        return (bool)preg_match("/^d{3}-d{2}-d{4}$/", $val);
 
    }
 
    /**
 
     * Checks given value matches date de
 
     * @param   string         
 
     * @return  boolean
 
     */
 
    function is_dateDE($date)
 
    {
 
        return (bool)preg_match("/^dd?.dd?.ddd?d?$/", $date);
 
    }
 
    /**
 
     * Checks given value matches us citizen social security number
 
     * @param   string         
 
     * @return  boolean
 
     */
 
    function is_dateISO($date)
 
    {
 
        return (bool)preg_match("/^d{4}[/-]d{1,2}[/-]d{1,2}$/", $date);
 
    }
 
    /**
 
     * Checks given value matches a time zone  
 
     * +00:00 | -05:00 
 
     * @param   string         
 
     * @return  boolean
 
     */
 
    function is_timezone($val)
 
    {
 
        return (bool)preg_match("/^[-+]((0[0-9]|1[0-3]):([03]0|45)|14:00)$/", $val);
 
    }
 
    /**
 
     * Time in 24 hours format with optional seconds
 
     * 12:15 | 10:26:59 | 22:01:15 
 
     * @param   string         
 
     * @return  boolean
 
     */
 
    function is_time24($val)
 
    {
 
        return (bool)preg_match("/^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/",
 
            $val);
 
    }
 
    /**
 
     * Time in 12 hours format with optional seconds
 
     * 08:00AM | 10:00am | 7:00pm
 
     * @param   string         
 
     * @return  boolean
 
     */
 
    function is_time12($val)
 
    {
 
        return (bool)preg_match("/^([1-9]|1[0-2]|0[1-9]){1}(:[0-5][0-9][aApP][mM]){1}$/",
 
            $val);
 
    }
 
}  

/**

  • @param $arr
  • @param $key_name
  • @return array
  • 将数据库中得知的列表以钦点的 id 作为数组的键名
    */
    function convert_arr_key($arr, $key_name)
    {
    $arr2 = array();
    foreach($arr as $key => $val){
    $arr2[$val[$key_name]] = $val;
    }
    return $arr2;
    }

function encrypt($str){
return md5(C("AUTH_CODE").$str);
}

/**

  • 获得数组中的某一列
  • @param type $arr 数组
  • @param type $key_name 列名
  • @return type 重回那一列的数组
    */
    function get_arr_column($arr, $key_name)
    {
    $arr2 = array();
    foreach($arr as $key => $val){
    $arr2[] = $val[$key_name];
    }
    return $arr2;
    }

/**

  • 收获url 中的各样参数 类似于 pay_code=alipay&bank_code=ICBC-DEBIT
  • @param type $str
  • @return type
    */
    function parse_url_param($str){
    $data = array();
    $parameter = explode('&',end(explode('?',$str)));
    foreach($parameter as $val){
    $tmp = explode('=',$val);
    $data[$tmp[0]] = $tmp[1];
    }
    return $data;
    }

/**

  • 二维数组排序
  • @param $arr
  • @param $keys
  • @param string $type
  • @return array
    */
    function array_sort($arr, $keys, $type = 'desc')
    {
    $key_value = $new_array = array();
    foreach ($arr as $k => $v) {
    $key_value[$k] = $v[$keys];
    }
    if ($type == 'asc') {
    asort($key_value);
    } else {
    arsort($key_value);
    }
    reset($key_value);
    foreach ($key_value as $k => $v) {
    $new_array[$k] = $arr[$k];
    }
    return $new_array;
    }

/**

  • 多维数组转化为一维数组
  • @param 多维数组
  • @return array 一维数组
    */
    function array_multi2single($array)
    {
    static $result_array = array();
    foreach ($array as $value) {
    if (is_array($value)) {
    array_multi2single($value);
    } else
    $result_array [] = $value;
    }
    return $result_array;
    }

/**

  • 协调时间呈现
  • @param $time
  • @return bool|string
    */
    function friend_date($time)
    {
    if (!$time)
    return false;
    $fdate = '';
    $d = time() - intval($time);
    $ld = $time - mktime(0, 0, 0, 0, 0, date('Y')); //得出年
    $md = $time - mktime(0, 0, 0, date('m'), 0, date('Y')); //得出月
    $byd = $time - mktime(0, 0, 0, date('m'), date('d') - 2, date('Y')); //前天
    $yd = $time - mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')); //昨天
    $dd = $time - mktime(0, 0, 0, date('m'), date('d'), date('Y')); //今天
    $td = $time - mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')); //明天
    $atd = $time - mktime(0, 0, 0, date('m'), date('d') + 2, date('Y')); //后天
    if ($d == 0) {
    $fdate = '刚刚';
    } else {
    switch ($d) {
    case $d < $atd:
    $fdate = date('Y年m月d日', $time);
    break;
    case $d < $td:
    $fdate = '后天' . date('H:i', $time);
    break;
    case $d < 0:
    $fdate = '明天' . date('H:i', $time);
    break;
    case $d < 60:
    $fdate = $d . '秒前';
    break;
    case $d < 3600:
    $fdate = floor($d / 60) . '分钟前';
    break;
    case $d < $dd:
    $fdate = floor($d / 3600) . '小时前';
    break;
    case $d < $yd:
    $fdate = '昨天' . date('H:i', $time);
    break;
    case $d < $byd:
    $fdate = '前天' . date('H:i', $time);
    break;
    case $d < $md:
    $fdate = date('m月d日 H:i', $time);
    break;
    case $d < $ld:
    $fdate = date('m月d日', $time);
    break;
    default:
    $fdate = date('Y年m月d日', $time);
    break;
    }
    }
    return $fdate;
    }

/**

  • 回来状态和音信
  • @param $status
  • @param $info
  • @return array
    */
    function arrayRes($status, $info, $url = "")
    {
    return array("status" => $status, "info" => $info, "url" => $url);
    }

/**

  • @param $arr
  • @param $key_name
  • @param $key_name2
  • @return array
  • 将数据库中查出的列表以内定的 id 作为数组的键名 数组钦定列为元素的一个数组
    */
    function get_id_val($arr, $key_name,$key_name2)
    {
    $arr2 = array();
    foreach($arr as $key => $val){
    $arr2[$val[$key_name]] = $val[$key_name2];
    }
    return $arr2;
    }

/**

  • 自定义函数 推断 顾客选取 从上边的列表中精选 可选值列表:无法为空
  • @param type $attr_values
  • @return boolean
    */
    function checkAttrValues($attr_values)
    {
    if((trim($attr_values) == '') && ($_POST['attr_input_type'] == '1'))
    return false;
    else
    return true;
    }

// 定义多个函数getIP() 顾客端IP,
function getIP(){
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
else $ip = "Unknow";
return $ip;
}
// 服务器端IP
function serverIP(){
return gethostbyname($_SERVER["SERVER_NAME"]);
}

/**

  • 自定义函数递归的复制带有多级子目录的目录
  • 递归复制文件夹
  • @param type $src 原目录
  • @param type $dst 复制到的目录
    */
    //参数表达:
    //自定义函数递归的复制带有多级子目录的目录
    function recurse_copy($src, $dst)
    {
    $now = time();
    $dir = opendir($src);
    @mkdir($dst);
    while (false !== $file = readdir($dir)) {
    if (($file != '.') && ($file != '..')) {
    if (is_dir($src . '/' . $file)) {
    recurse_copy($src . '/' . $file, $dst . '/' . $file);
    }
    else {
    if (file_exists($dst . DIRECTORY_SEPARATOR . $file)) {
    if (!is_writeable($dst . DIRECTORY_SEPARATOR . $file)) {
    exit($dst . DIRECTORY_SEPARATOR . $file . '不可写');
    }
    @unlink($dst . DIRECTORY_SEPARATOR . $file);
    }
    if (file_exists($dst . DIRECTORY_SEPARATOR . $file)) {
    @unlink($dst . DIRECTORY_SEPARATOR . $file);
    }
    $copyrt = copy($src . DIRECTORY_SEPARATOR . $file, $dst . DIRECTORY_SEPARATOR . $file);
    if (!$copyrt) {
    echo 'copy ' . $dst . DIRECTORY_SEPARATOR . $file . ' failed
    ';
    }
    }
    }
    }
    closedir($dir);
    }

// 递归删除文件夹
function delFile($dir,$file_type='') {
if(is_dir($dir)){
$files = scandir($dir);
//展开目录 //列出目录中的全数文件并去掉 . 和 ..
foreach($files as $filename){
if($filename!='.' && $filename!='..'){
if(!is_dir($dir.'/'.$filename)){
if(empty($file_type)){
unlink($dir.'/'.$filename);
}else{
if(is_array($file_type)){
//正则相配钦命文件
if(preg_match($file_type[0],$filename)){
unlink($dir.'/'.$filename);
}
}else{
//钦定包罗有个别字符串的文书
if(false!=stristr($filename,$file_type)){
unlink($dir.'/'.$filename);
}
}
}
}else{
delFile($dir.'/'.$filename);
rmdir($dir.'/'.$filename);
}
}
}
}else{
if(file_exists($dir)) unlink($dir);
}
}

/**

  • 多少个数组的笛Carl积

    • @param unknown_type $data
      */
      function combineDika() {
      $data = func_get_args();
      $data = current($data);
      $cnt = count($data);
      $result = array();
      $arr1 = array_shift($data);
      foreach($arr1 as $key=>$item)
      {
      $result[] = array($item);
      }

    foreach($data as $key=>$item)
    {
    $result = combineArray($result,$item);
    }
    return $result;
    }

/**

  • 五个数组的笛Carl积
  • @param unknown_type $arr1
  • @param unknown_type $arr2
    /
    function combineArray($arr1,$arr2) {
    $result = array();
    foreach ($arr1 as $item1)
    {
    foreach ($arr2 as $item2)
    {
    $temp = $item1;
    $temp[] = $item2;
    $result[] = $temp;
    }
    }
    return $result;
    }
    /
    *
  • 将二维数组以成分的某部值作为键 并分类数组
  • array( array('name'=>'aa','type'=>'pay'), array('name'=>'cc','type'=>'pay') )
  • array('pay'=>array( array('name'=>'aa','type'=>'pay') , array('name'=>'cc','type'=>'pay') ))
  • @param $arr 数组
  • @param $key 分组值的key
  • @return array
    */
    function group_same_key($arr,$key){
    $new_arr = array();
    foreach($arr as $k=>$v ){
    $new_arr[$v[$key]][] = $v;
    }
    return $new_arr;
    }

/**

  • 获得随机字符串
  • @param int $randLength 长度
  • @param int $addtime 是或不是投入当前时光戳
  • @param int $includenumber 是或不是富含数字
  • @return string
    */
    function get_rand_str($randLength=6,$addtime=1,$includenumber=0){
    if ($includenumber){
    $chars='abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQEST123456789';
    }else {
    $chars='abcdefghijklmnopqrstuvwxyz';
    }
    $len=strlen($chars);
    $randStr='';
    for ($i=0;$i<$randLength;$i++){
    $randStr.=$chars[rand(0,$len-1)];
    }
    $tokenvalue=$randStr;
    if ($addtime){
    $tokenvalue=$randStr.time();
    }
    return $tokenvalue;
    }

/**

  • CURL请求
  • @param $url 请求url地址
  • @param $method 诉求方法 get post
  • @param null $post田野s post数据数组
  • @param array $headers 请求header信息
  • @param bool|false $debug 调节和测验开启 暗许false
  • @return mixed
    /
    function httpRequest($url, $method, $postfields = null, $headers = array(), $debug = false) {
    $method = strtoupper($method);
    $ci = curl_init();
    /
    Curl settings /
    curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
    curl_setopt($ci, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
    curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 60); /
    在倡议连接前等候的年月,假设设置为0,则最为等待 /
    curl_setopt($ci, CURLOPT_TIMEOUT, 7); /
    设置cU瑞虎L允许施行的最长秒数 /
    curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
    switch ($method) {
    case "POST":
    curl_setopt($ci, CURLOPT_POST, true);
    if (!empty($postfields)) {
    $tmpdatastr = is_array($postfields) ? http_build_query($postfields) : $postfields;
    curl_setopt($ci, CURLOPT_POSTFIELDS, $tmpdatastr);
    }
    break;
    default:
    curl_setopt($ci, CURLOPT_CUSTOMREQUEST, $method); /
    //设置请求情势 /
    break;
    }
    $ssl = preg_match('/^) ? TRUE : FALSE;
    curl_setopt($ci, CURLOPT_URL, $url);
    if($ssl){
    curl_setopt($ci, CURLOPT_SSL_VEWranglerIFYPEEKoleos, FALSE); // https供给不表明证书和hosts
    curl_setopt($ci, CURLOPT_SSL_VECR-VIFYHOST, FALSE); // 不从证书中检查SSL加密算法是或不是留存
    }
    //curl_setopt($ci, CURLOPT_HEADER, true); /
    启用时会将头文件的音信作为数据流输出/
    curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ci, CURLOPT_MAXREDIRS, 2);/
    点名最多的HTTP重定向的数额,那一个选项是和CUEscortLOPT_FOLLOWLOCATION一齐行使的/
    curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ci, CURLINFO_HEADER_OUT, true);
    /
    curl_setopt($ci, CURLOPT_COOKIE, $Cookiestr); * COOKIE带过去* */
    $response = curl_exec($ci);
    $requestinfo = curl_getinfo($ci);
    $http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
    if ($debug) {
    echo "=====post data======rn";
    var_dump($postfields);
    echo "=====info===== rn";
    print_r($requestinfo);
    echo "=====response=====rn";
    print_r($response);
    }
    curl_close($ci);
    return $response;
    //return array($http_code, $response,$requestinfo);
    }

/**

  • 过滤数组成分前后空格 (帮忙多维数组)
  • @param $array 要过滤的数组
  • @return array|string
    */
    function trim_array_element($array){
    if(!is_array($array))
    return trim($array);
    return array_map('trim_array_element',$array);
    }

/**

  • 自己研究手机号码格式
  • @param $mobile 手提式有线电话机号码
    */
    function check_mobile($mobile){
    if(preg_match('/1[34578]d{9}$/',$mobile))
    return true;
    return false;
    }

/**

  • 检查邮箱地址格式
  • @param $email 邮箱地址
    */
    function check_email($email){
    if(filter_var($email,FILTER_VALIDATE_EMAIL))
    return true;
    return false;
    }

/**

  • 达成中文字串截取无乱码的方法
    */
    function getSubstr($string, $start, $length) {
    if(mb_strlen($string,'utf-8')>$length){
    $str = mb_substr($string, $start, $length,'utf-8');
    return $str.'...';
    }else{
    return $string;
    }
    }

/**

  • 判别当前拜望的客户是 PC端 如故 手提式无线电电话机端 再次回到true 为手提式有线电电话机端 false 为PC 端

  • @return boolean
    /
    /
    *
      * 是不是移动端访问访谈
      *
      * @return bool
      */
    function isMobile()
    {
    // 如果有HTTP_X_WAP_PROFILE则势必是运动道具
    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
    return true;

    // 假设via音讯含有wap则一定是活动器具,部分服务商会屏蔽该音讯
    if (isset ($_SERVER['HTTP_VIA']))
    {
    // 找不到为flase,不然为true
    return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
    }
    // 脑残法,判别手提式有线电话机发送的客商端标识,包容性有待抓牢
    if (isset ($_SERVER['HTTP_USER_AGENT']))
    {
    $clientkeywords = array ('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile');
    // 从HTTP_USER_AGENT中找找手提式有线电话机浏览器的珍视字
    if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
    return true;
    }
    // 左券法,因为有比很大大概不标准,放到最终判别
    if (isset ($_SERVER['HTTP_ACCEPT']))
    {
    // 借使只扶助wml何况不帮助html那自然是运动道具
    // 假若协助wml和html不过wml在html此前则是活动设备
    if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
    {
    return true;
    }
    }
    return false;
    }

//php获得中文字符拼音首字母
function getFirstCharter($str){
if(empty($str))
{
return '';
}
$fchar=ord($str{0});
if($fchar>=ord('A')&&$fchar<=ord('z')) return strtoupper($str{0});
$s1=iconv('UTF-8','gb2312',$str);
$s2=iconv('gb2312','UTF-8',$s1);
$s=$s2==$str?$s1:$str;
$asc=ord($s{0})*256+ord($s{1})-65536;
if($asc>=-20319&&$asc<=-20284) return 'A';
if($asc>=-20283&&$asc<=-19776) return 'B';
if($asc>=-19775&&$asc<=-19219) return 'C';
if($asc>=-19218&&$asc<=-18711) return 'D';
if($asc>=-18710&&$asc<=-18527) return 'E';
if($asc>=-18526&&$asc<=-18240) return 'F';
if($asc>=-18239&&$asc<=-17923) return 'G';
if($asc>=-17922&&$asc<=-17418) return 'H';
if($asc>=-17417&&$asc<=-16475) return 'J';
if($asc>=-16474&&$asc<=-16213) return 'K';
if($asc>=-16212&&$asc<=-15641) return 'L';
if($asc>=-15640&&$asc<=-15166) return 'M';
if($asc>=-15165&&$asc<=-14923) return 'N';
if($asc>=-14922&&$asc<=-14915) return 'O';
if($asc>=-14914&&$asc<=-14631) return 'P';
if($asc>=-14630&&$asc<=-14150) return 'Q';
if($asc>=-14149&&$asc<=-14091) return 'R';
if($asc>=-14090&&$asc<=-13319) return 'S';
if($asc>=-13318&&$asc<=-12839) return 'T';
if($asc>=-12838&&$asc<=-12557) return 'W';
if($asc>=-12556&&$asc<=-11848) return 'X';
if($asc>=-11847&&$asc<=-11056) return 'Y';
if($asc>=-11055&&$asc<=-10247) return 'Z';
return null;
}
</pre>

本文由365bet体育在线官网发布于关于计算机,转载请注明出处:常用的php各种验证正则表达式程序,自定义函数

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。