시스템 개발에 꼭 필요한 클래스, PHP 툴 클래스: 폼 검증 클래스 검증 코드 클래스 로그 클래스 페이징 클래스 无限极分类类
- class Lib_Form
- {
- private $typeArr=array('isNotEmpty' , 'isInt' , 'isStr' , 'isEmail' , 'isTel' , 'isOnlyNum' , 'hasSet', 'isOnlyChar' , 'isNumAndChar' , 'checkLength');
- private $msg = array();
- private $code = 0;
-
- public function validata($post)
- {
- if(!is_array($post))
- {
- $this->msg[] = '데이터가 배열이 아닙니다.';
- }
- else
- {
- foreach ($post as $field=>$value)
- {
- $func = $post[$field]['valid'];
- $value = $post[$field]['value'];
-
- $checkLength = 'checkLength';
- if($pos = Stripos($func , $checkLength)!==false)
- {
- $condition = substr($func, strlen($checkLength));
- $func = $checkLength;
- $lengthArr =explosion('-', $condition);
- self ::$func($value , $field , $lengthArr[0] , $lengthArr[1]);
- }
- else
- {
- if(!in_array($func , $this- >typeArr))
- {
- $this->msg = $func.' isNotExists';
- break;
- }
- self::$func($value , $field);
- }
- }
- }
- return $this->showRestult ();
- }
-
- 비공개 함수 showRestult()
- {
- if($this->msg && is_array($this->msg))
- {
- $this->code = 1;
- $msg = implode(',', $this->msg);
- $ret = array('code'=>$this->code , 'msg'=>$msg);
- return $ret;
- }
- return array('code'=>$this->code , 'msg'=>'성공' );
- }
-
- 비공개 함수 isNotEmpty($value,$field)
- {
- if(!$this->hasSet($value, $field)) return false;
- $value = Trim($value);
- if(empty($value))
- {
- $this->msg[] = $field.' isEmpty';
- return false;
- }
- return true;
- }
-
- 비공개 함수 isInt($value,$field)
- {
- if(!$ this->isNotEmpty($value,$field)) return false;
- $value = Trim($value);
- if(!is_int($value))
- {
- $this- >msg[] = $필드.' isNotInt';
- return false;
- }
- return true;
- }
-
- 비공개 함수 isStr($value,$field)
- {
- if(!$ this->isNotEmpty($value,$field)) return false;
- $value = Trim($value);
- if(!is_string($value))
- {
- $this- >msg[] = $필드.' isNotStr';
- return false;
- }
- return true;
- }
-
- 비공개 함수 hasSet($value , $field)
- {
- if(!isset ($value))
- {
- $this->msg[] = $field.' isNotSet';
- return false;
- }
- return true;
- }
-
- 비공개 함수 isEmail($value,$field)
- {
- if(!$ this->isNotEmpty($value,$field)) return false;
- $value = Trim($value);
- $pattern = "/^[a-zA-Z0-9_-] @[a -zA-Z0-9_-] (.[a-zA-Z0-9_-] )$/";
- if(!preg_match($pattern, $value))
- {
- $this- >msg[] = $필드.' isNotEmail';
- return false;
- }
- return true;
- }
-
- 비공개 함수 isTel($value,$field)
- {
- if(!$ this->isNotEmpty($value,$field)) return false;
- $value = Trim($value);
- $pattern = '/^[0-9]{7,11}$/' ;
- if (!preg_match($pattern, $value))
- {
- $this->msg[] = $field.' isNotTel';
- return false;
- }
- return true;
- }
-
- 비공개 함수 isOnlyNum($value,$field)
- {
- if(!$ this->isNotEmpty($value,$field)) return false;
- $value = Trim($value);
- $pattern = "/^[0-9]{1,}$/";
- if(!preg_match($pattern, $value))
- {
- $this->msg[] = $field.' isNotOnlyNum';
- return false;
- }
- return true;
- }
-
- 비공개 함수 isOnlyChar($value,$field)
- {
- if(!$ this->isNotEmpty($value,$field)) return false;
- $value = Trim($value);
- $pattern = "/^[a-zA-Z]{1,}$/ ";
- if(!preg_match($pattern, $value))
- {
- $this->msg[] = $field.' isNotOnlyChar';
- return false;
- }
- return true;
- }
-
- 비공개 함수 isNumAndChar($value,$field)
- {
- if(!$ this->isNotEmpty($value,$field)) return false;
- $value = Trim($value);
- $pattern = "/^[a-zA-z0-9]{1,} $/";
- if(!preg_match($pattern , $value))
- {
- $this->msg[] = $field.' isNotNumAndChar';
- false 반환;
- }
- true 반환;
- }
-
- 비공개 함수 checkLength($value , $field , $minLength , $maxLength)
- {
- if(!$this->isNotEmpty($value,$field)) return false;
- $value = Trim($value);
- $length = (strlen($value) mb_strlen($value,'UTF8')) / 2;
- if($length < $minLength || $length > $maxLength)
- {
- $this->msg[] = $field.' isNotInLength';
- false 반환;
- }
- true 반환;
- }
- }
-
- if($_POST['submit'])
- {
- $form = new Lib_Form();
- $post['name'] = array('value'=>$_POST['name'] , 'valid'=>'checkLength6-12');
- $post['pwd'] = array('value'=>$_POST['pwd'] , 'valid'=>'checkLength4-12');
- $post['sex'] = 배열 ('value'=>$_POST['sex'] , 'valid'=>'hasSet');
-
- $ret = $form->validata($post);
- if ($ret['code'])
- {
- echo $ret['msg'];
- }
- }
- ?>
-
-
제조대码
- class Lib_Image
- {
- private $height = 0;
- private $width = 0;
-
- public function __construct($height , $width)
- {
- $this->height = $height;
- $this->width = $width;
- }
-
- 비공개 function genCode($num)
- {
- for($i=0;$i<$num;$i )//生成验证码
- {
- 스위치(rand(0,2))
- {
- 사례 0:$code[$i]=chr(rand(48,57));break;//문자
- 사례 1:$code[$i]=chr(rand(65 ,90));break;//大写字母
- 사례 2:$code[$i]=chr(rand(97,122));break;//小写字母
- }
- }
- $ _SESSION["VerifyCode"]=$code;
- $code를 반환합니다.
- }
-
- 비공개 함수 genOther($image)
- {
- for($i=0;$i<80;$i )//生成干扰image素
- {
- $dis_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
- imagesetpixel($image,rand(1,$this->width),rand(1 ,$this->height),$dis_color);
- }
- }
-
- 공개 함수 VeryCode()
- {
-
- $image=imagecreate($this- >width,$this->height);
- imagecolorallocate($image,255,255,255);
- //$this->genOther($image);
-
- $num = 4;
- $code = $this->genCode($num);
- for($i=0;$i<$num;$i )//打印字符到图image
- {
- $ char_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
- imagechar($image,60,($this->width/$num)*$i, rand(0,5),$code[$i],$char_color);
- }
-
- header("Content-type:image/png");
- imagepng($image); //输 Out图 Image到浏览器
- imagedestroy($image);//释放资源
- }
- }
-
- $image = new Lib_Image(25, 65);
- $image ->veryCode();
- ?>
复代码
- class Lib_Log
- {
- private $logError = 0;
- private $logWarn = 1;
- private $logDebug = 2;
- private $logDir = 'log/';
- private $logFile = 'log';
- private $fileExt = '.txt';
- private $fileHander = null;
-
- 공용 함수 __construct()
- {
- if(!is_dir($this->logDir)){
- mkdir($this->logDir,0777);
- }
- $this->logFile .= date('Y-m-d').$this->fileExt;
- if(!$this->fileHander = @fopen($this->logDir .$this->logFile, 'a ')){
- die('로그 파일을 열 수 없습니다!');
- }
- }
-
- 공용 함수 writeLog($ 메시지)
- {
- $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '0.0.0.0';
- $debug = debug_backtrace(true);
- $string = date('Y-m-d H:i:s')."t";
- $string .= $ip."t";
- $string .=$debug[0]['file']."t";
- $string .= "tline" . $debug[0]['line']."t";
- $string .= json_encode($message)."rn";
- if(!fwrite($this->fileHander, $string) ){
- die('로그 파일을 쓸 수 없습니다!');
- }
- }
-
- public function __destruct()
- {
- if($this- >fileHander!=null){
- fclose($this->fileHander);
- }
- }
-
- }
-
- $log = new Lib_Log();
- $log->writeLog('the error debug!');
- echo "";
-
- ?>
复代码
- class Lib_Page
- {
- public $currentPage=0; //현재 페이지 번호
- private $totalPage=0; 총 페이지 수
- private $totalNums=0; //총 레코드 수
- private $perNums=0; //각 페이지에 표시되는 레코드 수
- private $type = 0;
-
- 공용 함수 __construct($totalNums, $perNums,$type=0)
- {
- $this->totalNums = intval($totalNums);
- $this->perNums = intval( $perNums);
- $this->totalPage = intval(ceil($this->totalNums / $this->perNums));
- $this->currentPage = min(max (1 , $_REQUEST['p']) , $this->totalPage);
- $this->type = intval($type);
- }
-
- 개인 함수 우선( )
- {
- if ($this->currentPage==1) return false;
- return "홈페이지 ";
- }
-
- 비공개 함수 last()
- {
- if ($this->currentPage==$this->totalPage) return false;
- return "< ;a href='?p={$this->totalPage}'>마지막 페이지 ";
- }
-
- 비공개 함수 next()
- {
- $p = min($this->currentPage 1 , $this->totalPage);
- if ($p==$this->totalPage) return false;
- return "< a href='?p={$p}'>다음 페이지 ";
- }
-
- 비공개 함수 prev()
- {
- $ p = max(1 , $this->currentPage - 1);
- if($p==1) return false;
- return " ";
- }
-
- 비공개 함수 total()
- {
- return "total{$this-> totalPage} 페이지< ;/span> | {$this->totalNums}개 레코드 현재 페이지 {$this->currentPage}" ;
- }
-
- 비공개 함수 페이지()
- {
- $show = "";
- for ($i=1; $i<=$this->totalPage; $i ){
- if ($i==$this->currentPage)
- $show .= "{ $i} else
- $show .= "{$i} }
- return $show;
- }
-
- public function show()
- {
- if ($this->type== 1) {
- return $this->total().' '.$this->page();
- }else if($this->type==2){
- return $this->total( ).' '.$this->first().' '.$this->next().'
- }elseif ($this->type==0){
- $this->total()을 반환합니다.'.$this->first().' prev().' '.$this->page().' '.$this->last();
- }
- }
-
- }
-
- $totalNums = 80;
- $perNums = 10;
- $page = new Lib_Page($totalNums, $perNums);
- echo $page->show ();
- ?>
코드 복사
- class Lib_Tree
- {
- private $items = array();
- private $icon = array(
- '├ ',
- ' ├',
- ' ├',
- ' ├',
- ' ├',
- ' └',
- );
- private $field = array('id','name');
- public $ret = '
类name | 操작품 | ';
-
- 공개 함수 __construct($items)
- {
- $this->items = $items;
- }
-
- 공용 함수 setIcon($icon)
- {
- $this->icon = $icon;
- }
-
- 공용 함수 getChildren($pid)
- {
- foreach ($this->items as $item)
- {
- if($item['pid']==$pid)
- {
- $children[] = $item;
- }
- }
- $children && is_array($children) 반환 ? $children : false;
- }
-
- 공개 함수 getParent($id)
- {
- return $this->items[$this->items[$id]['pid ']];
- }
-
- 공개 함수 show($pid)
- {
- $children = $this->getChildren($pid);
- if(!$children ) return false;
- foreach ($children을 $child로)
- {
- $this->ret.='
';
- $this->ret.='< ;td>'.$this->icon[$child['level']].$child['name'].'';
- $this->ret.='< ;td>删除 添加 修改';
- $this->ret. ='
';
- $this->show($child['id']);
- }
- }
-
-
- }
-
- $items = array(
- array('id'=>1 , 'name'=>'湖北', 'pid'=>0, 'level'=>0),
- array('id'=>2 , 'name'=>'무汉', 'pid'=>1, 'level'=>1),
- array('id'=>3 , 'name'=>'孝感', 'pid'=>1, 'level'=>1),
- array('id'=>4 , 'name'=>'广东', 'pid'=>0, 'level'=>0),
- array('id'=>5 , 'name'=>'广州', 'pid'=>4, 'level '=>1),
- array('id'=>6 , 'name'=>'深圳', 'pid'=>4, 'level'=>1),
- array('id'=>7 , 'name'=>'东莞', 'pid'=>4, 'level'=>1),
- array('id'=>8 , 'name'=>'宜昌', 'pid'=>1, 'level'=>1),
- array('id'=>9 , 'name'=>'云梦' , 'pid'=>3, 'level'=>2),
- array('id'=>10 , 'name'=>'南山区', 'pid'=>6, 'level'=>2),
- array('id'=>11 , 'name'=>'宝안전', 'pid'=>6, 'level'=>2),
- array('id'=>12 , 'name'=>'倒店', 'pid'=>9, 'level'=>3),
- array('id'= >13 , 'name'=>'罗范大队', 'pid'=>12, 'level'=>4),
- array('id'=>14 , 'name'= >'下范存', 'pid'=>13, 'level'=>5),
- );
-
- $tree = new Lib_Tree($items);
- $ tree->show(0);
- echo $tree->ret;
-
- ?>
复代码
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31
|