<br> <code>is_mail_valid</code>检测邮箱地址字符串<code>JJonline.Cn@JJonline-Com.Cn</code>的结果<code><?php var_dump(is_mail_valid('*****@*****.**')); ?> </code>; <br> 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> Ps:我都这么卖力的分享了,请给点面子不要拿此身份证号瞎搞</p>
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; }