Esempio n. 1
0
         <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>is_mail_valid</code>检测邮箱地址字符串<code>JJonline.Cn@JJonline-Com.Cn</code>的结果<code><?php 
var_dump(is_mail_valid('*****@*****.**'));
?>
</code>;
         <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;So,符合人类认知的几种邮箱格式检测均已支持~倘若需要支持检测邮箱中域名后缀为特定的,比如.com、.cn的还不支持
         <br>Ps4:邮箱地址和网站网站域名一样是不区分大小写滴;那么问题来了Url区分大小写吗?答案是:看情况,因为*nux文件系统区分,而window文件系统特么又不区分~;只能说协议部分和域名部分是不区分大小写滴~
      </p>
      <p>5、<code>is_phone_valid</code>检测存在的天朝手机号<code>15872254727</code>,输出:<code><?php 
var_dump(is_phone_valid('17612345678'));
?>
</code>;<code>is_phone_valid</code>检测不存在的天朝手机号<code>170123456</code>,输出:<code><?php 
var_dump(is_phone_valid('170123456'));
?>
</code>;天朝手机号11位,开头为13[0-9]、14[0-9]、15[0-9]、18[0-9]、176、177、178新号段以及虚拟运营商的170[059]</p>
      <p>6、<code>is_url_valid</code>检测Url<code>https://www.jjonline.cn:443/UserInfo/index.php?UserId=123456&type=Vip#Node=part1</code>,输出<code><?php 
var_dump(is_url_valid('https://www.jjonline.cn:443/UserInfo/index.php?UserId=123456&type=Vip#Node=part1'));
?>
</code>;该方法仅检测http或https打头的Url,包括端口、get变量和锚点支持</p>
      <p>7、<code>is_uid_valid</code>检测QQ号<code>77808859</code>,输出:<code><?php 
var_dump(is_uid_valid('77808859'));
?>
</code>;该方法三个参数,第一个必选参数为需要检测的数字账户id,第二个可选参数指定合法的数字账户最短位数[默认4位],第三个可选参数指定合法的数字账户最长位数[默认11位]。</p>
      <p>8、<code>is_password_valid</code>检测密码字符串<code>mima123456</code>,输出<code><?php 
var_dump(is_password_valid('mima123456'));
?>
</code>;该方法检测的密码字符串必须同时包含字母和数字;该方法三个参数,第一个必选参数为需要检测的密码字符串,第二个可选参数指定合法的密码字符串最短长度[默认8位],第三个可选参数指定合法的密码字符串最长长度[默认16位]。</p>
      <p>9、<code>is_citizen_id_valid</code>检测身份证号<code>420521198907031846</code>是否合乎规范,输出:<code><?php 
var_dump(is_citizen_id_valid('420521198907031846'));
?>
</code>;该函数兼容15位老身份证号和18位新身份证号(若传入15位合法的身份证号将返回转换过的18位身份证号),符合规范返回有内容的关联数组(boolean判断为true),不符合规范返回false
         <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ps:我都这么卖力的分享了,请给点面子不要拿此身份证号瞎搞</p>
Esempio n. 2
0
 public function form_to_db($post, $add_defaults = false, $is_panic = true)
 {
     $this->is_panic = $is_panic;
     $db = array();
     foreach ($this->fields as $field => $rules) {
         if (!isset($post[$field])) {
             if ($add_defaults) {
                 if (isset($rules['default'])) {
                     $post[$field] = $rules['default'];
                 } else {
                     throw new Exception("No default value for field '{$field}'");
                 }
             } else {
                 if (isset($rules['required'])) {
                     $this->panic($field, 'required');
                     continue;
                 } else {
                     continue;
                 }
             }
         }
         $value = $post[$field];
         if (isset($rules['enum'])) {
             if (!isset($rules['enum'][$value])) {
                 $this->panic($field, 'enum');
                 continue;
             }
         }
         if (isset($rules['limit'])) {
             $value = (int) $value;
             if (isset($rules['limit']['min']) && $value < $rules['limit']['min']) {
                 $this->panic($field, 'limit_min');
                 continue;
             } else {
                 if (isset($rules['limit']['max']) && $value > $rules['limit']['max']) {
                     $this->panic($field, 'limit_max');
                     continue;
                 }
             }
         }
         if (isset($rules['length'])) {
             $len = mb_strlen($value, 'utf-8');
             if (isset($rules['length']['min']) && $len < $rules['length']['min']) {
                 $this->panic($field, 'length_min');
                 continue;
             } else {
                 if (isset($rules['length']['max']) && $len > $rules['length']['max']) {
                     $this->panic($field, 'length_max');
                     continue;
                 }
             }
         }
         if (isset($rules['regexp'])) {
             if (!preg_match($rules['regexp'], $value)) {
                 $this->panic($field, 'regexp');
                 continue;
             }
         }
         if (isset($rules['id'])) {
             //todo?
             $value = (int) $value;
             if ($value <= 0) {
                 $this->panic($field, 'id');
                 continue;
             }
         }
         if (isset($rules['url'])) {
             if (!is_url_valid($value)) {
                 $this->panic($field, 'url');
                 continue;
             }
         }
         if (isset($rules['email'])) {
             if (!is_email_valid($value)) {
                 $this->panic($field, 'email');
                 continue;
             }
         }
         if (isset($rules['required'])) {
             if (!$value) {
                 $this->panic($field, 'required');
                 continue;
             }
         }
         if (isset($rules['checkbox'])) {
             if (!in_array($value, array('y', 'n'))) {
                 $this->panic($field, 'checkbox');
                 continue;
             }
         }
         $db[$field] = $value;
     }
     return $db;
 }