<?php
/**
* 作用:常用表单验证类
* 作者:欣然随风
* 时间:2006-3-6
* QQ:276624915
*/
class class_post
{
//验证是否为指定长度的字母/数字组合
function fun_text1($num1,$num2,$str)
{
Return (preg_match("/^[a-zA-Z0-9]{".$num1.",".$num2."}$/",$str))?true:false;
}
//验证是否为指定长度数字
function fun_text2($num1,$num2,$str)
{
return (preg_match("/^[0-9]{".$num1.",".$num2."}$/i",$str))?true:false;
}
//验证是否为指定长度汉字
function fun_font($num1,$num2,$str)
{
// preg_match("/^[\xa0-\xff]{1,4}$/", $string);
return (preg_match("/^([\x81-\xfe][\x40-\xfe]){".$num1.",".$num2."}$/",$str))?true:false;
}
//验证身份证号码
function fun_status($str)
{
return (preg_match('/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/',$str))?true:false;
}
//验证邮件地址
function fun_email($str){
return (preg_match('/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/',$str))?true:false;
}
//验证电话号码
function fun_phone($str)
{
return (preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/",$str))?true:false;
}
//验证邮编
function fun_zip($str)
{
return (preg_match("/^[1-9]\d{5}$/",$str))?true:false;
}
//验证url地址
function fun_url($str)
{
return (preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/",$str))?true:false;
}
// 数据入库 转义 特殊字符
function data_join(&$data)
{
if(get_magic_quotes_gpc() == false)
{
if (is_array($data))
{
foreach ($data as &$v)
{
$this->data_join($v);
}
}else $data = addslashes($data);
}
}
// 数据出库 还原 特殊字符
function data_revert(&$data)
{
if(is_array($data))
{
foreach ($data as &$v)
{
$this->data_revert($v);
}
}else $data = stripslashes($data);
}
// 数据显示 还原 数据格式 主要用于内容输出
// 执行此方法前应先data_revert(),表单内容无须此还原
function data_show(&$data)
{
if (is_array($data))
{
foreach ($data as &$v)
{
$this->data_show($v);
}
}
else
{
$data = nl2br(htmlspecialchars($data));
$data = str_replace(' ',' ',$data);
}
}
// 字符串截取
function char_jq(&$str,$strlen=10,$other='')
{
$j = 0;
for($i=0;$i<$strlen;$i++)
{
if(ord(substr($str,$i,1))>0xa0) $j++;
}
if($j%2!=0) $strlen--;
$rstr=substr($str,0,$strlen);
if (strlen($str)>$strlen) $rstr.=$other;
return $rstr;
}
// 字符串分拆
function substr_fix($str,$length)
{
if(strlen($str) <= $length)
{
$new[0] = $str;
$new[1] = '';
}
else
{
$x = 2 * $length ;
$i = 0;
while($i < $x)
{
if(ord(substr($str,$i,1)) < 127)
$x--;
$i++;
}
$new[0] = substr($str,0,$x);
$new[1] = substr($str,$x);
}
return $new;
}
}