>  기사  >  백엔드 개발  >  PHP 도구

PHP 도구

WBOY
WBOY원래의
2016-07-25 08:48:393032검색
시스템 개발에 꼭 필요한 클래스, PHP 툴 클래스:
폼 검증 클래스
검증 코드 클래스
로그 클래스
페이징 클래스
无限极分类类
  1. class Lib_Form
  2. {
  3. private $typeArr=array('isNotEmpty' , 'isInt' , 'isStr' , 'isEmail' , 'isTel' , 'isOnlyNum' , 'hasSet', 'isOnlyChar' , 'isNumAndChar' , 'checkLength');
  4. private $msg = array();
  5. private $code = 0;
  6. public function validata($post)
  7. {
  8. if(!is_array($post))
  9. {
  10. $this->msg[] = '데이터가 배열이 아닙니다.';
  11. }
  12. else
  13. {
  14. foreach ($post as $field=>$value)
  15. {
  16. $func = $post[$field]['valid'];
  17. $value = $post[$field]['value'];
  18. $checkLength = 'checkLength';
  19. if($pos = Stripos($func , $checkLength)!==false)
  20. {
  21. $condition = substr($func, strlen($checkLength));
  22. $func = $checkLength;
  23. $lengthArr =explosion('-', $condition);
  24. self ::$func($value , $field , $lengthArr[0] , $lengthArr[1]);
  25. }
  26. else
  27. {
  28. if(!in_array($func , $this- >typeArr))
  29. {
  30. $this->msg = $func.' isNotExists';
  31. break;
  32. }
  33. self::$func($value , $field);
  34. }
  35. }
  36. }
  37. return $this->showRestult ();
  38. }
  39. 비공개 함수 showRestult()
  40. {
  41. if($this->msg && is_array($this->msg))
  42. {
  43. $this->code = 1;
  44. $msg = implode(',', $this->msg);
  45. $ret = array('code'=>$this->code , 'msg'=>$msg);
  46. return $ret;
  47. }
  48. return array('code'=>$this->code , 'msg'=>'성공' );
  49. }
  50. 비공개 함수 isNotEmpty($value,$field)
  51. {
  52. if(!$this->hasSet($value, $field)) return false;
  53. $value = Trim($value);
  54. if(empty($value))
  55. {
  56. $this->msg[] = $field.' isEmpty';
  57. return false;
  58. }
  59. return true;
  60. }
  61. 비공개 함수 isInt($value,$field)
  62. {
  63. if(!$ this->isNotEmpty($value,$field)) return false;
  64. $value = Trim($value);
  65. if(!is_int($value))
  66. {
  67. $this- >msg[] = $필드.' isNotInt';
  68. return false;
  69. }
  70. return true;
  71. }
  72. 비공개 함수 isStr($value,$field)
  73. {
  74. if(!$ this->isNotEmpty($value,$field)) return false;
  75. $value = Trim($value);
  76. if(!is_string($value))
  77. {
  78. $this- >msg[] = $필드.' isNotStr';
  79. return false;
  80. }
  81. return true;
  82. }
  83. 비공개 함수 hasSet($value , $field)
  84. {
  85. if(!isset ($value))
  86. {
  87. $this->msg[] = $field.' isNotSet';
  88. return false;
  89. }
  90. return true;
  91. }
  92. 비공개 함수 isEmail($value,$field)
  93. {
  94. if(!$ this->isNotEmpty($value,$field)) return false;
  95. $value = Trim($value);
  96. $pattern = "/^[a-zA-Z0-9_-] @[a -zA-Z0-9_-] (.[a-zA-Z0-9_-] )$/";
  97. if(!preg_match($pattern, $value))
  98. {
  99. $this- >msg[] = $필드.' isNotEmail';
  100. return false;
  101. }
  102. return true;
  103. }
  104. 비공개 함수 isTel($value,$field)
  105. {
  106. if(!$ this->isNotEmpty($value,$field)) return false;
  107. $value = Trim($value);
  108. $pattern = '/^[0-9]{7,11}$/' ;
  109. if (!preg_match($pattern, $value))
  110. {
  111. $this->msg[] = $field.' isNotTel';
  112. return false;
  113. }
  114. return true;
  115. }
  116. 비공개 함수 isOnlyNum($value,$field)
  117. {
  118. if(!$ this->isNotEmpty($value,$field)) return false;
  119. $value = Trim($value);
  120. $pattern = "/^[0-9]{1,}$/";
  121. if(!preg_match($pattern, $value))
  122. {
  123. $this->msg[] = $field.' isNotOnlyNum';
  124. return false;
  125. }
  126. return true;
  127. }
  128. 비공개 함수 isOnlyChar($value,$field)
  129. {
  130. if(!$ this->isNotEmpty($value,$field)) return false;
  131. $value = Trim($value);
  132. $pattern = "/^[a-zA-Z]{1,}$/ ";
  133. if(!preg_match($pattern, $value))
  134. {
  135. $this->msg[] = $field.' isNotOnlyChar';
  136. return false;
  137. }
  138. return true;
  139. }
  140. 비공개 함수 isNumAndChar($value,$field)
  141. {
  142. if(!$ this->isNotEmpty($value,$field)) return false;
  143. $value = Trim($value);
  144. $pattern = "/^[a-zA-z0-9]{1,} $/";
  145. if(!preg_match($pattern , $value))
  146. {
  147. $this->msg[] = $field.' isNotNumAndChar';
  148. false 반환;
  149. }
  150. true 반환;
  151. }
  152. 비공개 함수 checkLength($value , $field , $minLength , $maxLength)
  153. {
  154. if(!$this->isNotEmpty($value,$field)) return false;
  155. $value = Trim($value);
  156. $length = (strlen($value) mb_strlen($value,'UTF8')) / 2;
  157. if($length < $minLength || $length > $maxLength)
  158. {
  159. $this->msg[] = $field.' isNotInLength';
  160. false 반환;
  161. }
  162. true 반환;
  163. }
  164. }
  165. if($_POST['submit'])
  166. {
  167. $form = new Lib_Form();
  168. $post['name'] = array('value'=>$_POST['name'] , 'valid'=>'checkLength6-12');
  169. $post['pwd'] = array('value'=>$_POST['pwd'] , 'valid'=>'checkLength4-12');
  170. $post['sex'] = 배열 ('value'=>$_POST['sex'] , 'valid'=>'hasSet');
  171. $ret = $form->validata($post);
  172. if ($ret['code'])
  173. {
  174. echo $ret['msg'];
  175. }
  176. }
  177. ?>
제조대码
  1. class Lib_Image
  2. {
  3. private $height = 0;
  4. private $width = 0;
  5. public function __construct($height , $width)
  6. {
  7. $this->height = $height;
  8. $this->width = $width;
  9. }
  10. 비공개 function genCode($num)
  11. {
  12. for($i=0;$i<$num;$i )//生成验证码
  13. {
  14. 스위치(rand(0,2))
  15. {
  16. 사례 0:$code[$i]=chr(rand(48,57));break;//문자
  17. 사례 1:$code[$i]=chr(rand(65 ,90));break;//大写字母
  18. 사례 2:$code[$i]=chr(rand(97,122));break;//小写字母
  19. }
  20. }
  21. $ _SESSION["VerifyCode"]=$code;
  22. $code를 반환합니다.
  23. }
  24. 비공개 함수 genOther($image)
  25. {
  26. for($i=0;$i<80;$i )//生成干扰image素
  27. {
  28. $dis_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
  29. imagesetpixel($image,rand(1,$this->width),rand(1 ,$this->height),$dis_color);
  30. }
  31. }
  32. 공개 함수 VeryCode()
  33. {
  34. $image=imagecreate($this- >width,$this->height);
  35. imagecolorallocate($image,255,255,255);
  36. //$this->genOther($image);
  37. $num = 4;
  38. $code = $this->genCode($num);
  39. for($i=0;$i<$num;$i )//打印字符到图image
  40. {
  41. $ char_color=imagecolorallocate($image,rand(0,2555),rand(0,255),rand(0,255));
  42. imagechar($image,60,($this->width/$num)*$i, rand(0,5),$code[$i],$char_color);
  43. }
  44. header("Content-type:image/png");
  45. imagepng($image); //输 Out图 Image到浏览器
  46. imagedestroy($image);//释放资源
  47. }
  48. }
  49. $image = new Lib_Image(25, 65);
  50. $image ->veryCode();
  51. ?>
复代码
  1. class Lib_Log
  2. {
  3. private $logError = 0;
  4. private $logWarn = 1;
  5. private $logDebug = 2;
  6. private $logDir = 'log/';
  7. private $logFile = 'log';
  8. private $fileExt = '.txt';
  9. private $fileHander = null;
  10. 공용 함수 __construct()
  11. {
  12. if(!is_dir($this->logDir)){
  13. mkdir($this->logDir,0777);
  14. }
  15. $this->logFile .= date('Y-m-d').$this->fileExt;
  16. if(!$this->fileHander = @fopen($this->logDir .$this->logFile, 'a ')){
  17. die('로그 파일을 열 수 없습니다!');
  18. }
  19. }
  20. 공용 함수 writeLog($ 메시지)
  21. {
  22. $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '0.0.0.0';
  23. $debug = debug_backtrace(true);
  24. $string = date('Y-m-d H:i:s')."t";
  25. $string .= $ip."t";
  26. $string .=$debug[0]['file']."t";
  27. $string .= "tline" . $debug[0]['line']."t";
  28. $string .= json_encode($message)."rn";
  29. if(!fwrite($this->fileHander, $string) ){
  30. die('로그 파일을 쓸 수 없습니다!');
  31. }
  32. }
  33. public function __destruct()
  34. {
  35. if($this- >fileHander!=null){
  36. fclose($this->fileHander);
  37. }
  38. }
  39. }
  40. $log = new Lib_Log();
  41. $log->writeLog('the error debug!');
  42. echo "";
  43. ?>
复代码
  1. class Lib_Page
  2. {
  3. public $currentPage=0; //현재 페이지 번호
  4. private $totalPage=0; 총 페이지 수
  5. private $totalNums=0; //총 레코드 수
  6. private $perNums=0; //각 페이지에 표시되는 레코드 수
  7. private $type = 0;
  8. 공용 함수 __construct($totalNums, $perNums,$type=0)
  9. {
  10. $this->totalNums = intval($totalNums);
  11. $this->perNums = intval( $perNums);
  12. $this->totalPage = intval(ceil($this->totalNums / $this->perNums));
  13. $this->currentPage = min(max (1 , $_REQUEST['p']) , $this->totalPage);
  14. $this->type = intval($type);
  15. }
  16. 개인 함수 우선( )
  17. {
  18. if ($this->currentPage==1) return false;
  19. return "홈페이지   ";
  20. }
  21. 비공개 함수 last()
  22. {
  23. if ($this->currentPage==$this->totalPage) return false;
  24. return "< ;a href='?p={$this->totalPage}'>마지막 페이지  ";
  25. }
  26. 비공개 함수 next()
  27. {
  28. $p = min($this->currentPage 1 , $this->totalPage);
  29. if ($p==$this->totalPage) return false;
  30. return "< a href='?p={$p}'>다음 페이지  ";
  31. }
  32. 비공개 함수 prev()
  33. {
  34. $ p = max(1 , $this->currentPage - 1);
  35. if($p==1) return false;
  36. return "  ";
  37. }
  38. 비공개 함수 total()
  39. {
  40. return "total{$this-> totalPage} 페이지< ;/span> | {$this->totalNums}개 레코드 현재 페이지 {$this->currentPage}" ;
  41. }
  42. 비공개 함수 페이지()
  43. {
  44. $show = "";
  45. for ($i=1; $i<=$this->totalPage; $i ){
  46. if ($i==$this->currentPage)
  47. $show .= "{ $i} else
  48. $show .= "{$i} }
  49. return $show;
  50. }
  51. public function show()
  52. {
  53. if ($this->type== 1) {
  54. return $this->total().' '.$this->page();
  55. }else if($this->type==2){
  56. return $this->total( ).' '.$this->first().' '.$this->next().'
  57. }elseif ($this->type==0){
  58. $this->total()을 반환합니다.'.$this->first().' prev().' '.$this->page().' '.$this->last();
  59. }
  60. }
  61. }
  62. $totalNums = 80;
  63. $perNums = 10;
  64. $page = new Lib_Page($totalNums, $perNums);
  65. echo $page->show ();
  66. ?>
코드 복사
  1. class Lib_Tree
  2. {
  3. private $items = array();
  4. private $icon = array(
  5. '├ ',
  6. ' ├',
  7. ' ├',
  8. ' ├',
  9. ' ├',
  10. ' └',
  11. );
  12. private $field = array('id','name');
  13. public $ret = '';
  14. 공개 함수 __construct($items)
  15. {
  16. $this->items = $items;
  17. }
  18. 공용 함수 setIcon($icon)
  19. {
  20. $this->icon = $icon;
  21. }
  22. 공용 함수 getChildren($pid)
  23. {
  24. foreach ($this->items as $item)
  25. {
  26. if($item['pid']==$pid)
  27. {
  28. $children[] = $item;
  29. }
  30. }
  31. $children && is_array($children) 반환 ? $children : false;
  32. }
  33. 공개 함수 getParent($id)
  34. {
  35. return $this->items[$this->items[$id]['pid ']];
  36. }
  37. 공개 함수 show($pid)
  38. {
  39. $children = $this->getChildren($pid);
  40. if(!$children ) return false;
  41. foreach ($children을 $child로)
  42. {
  43. $this->ret.='
  44. ';
  45. $this->ret.='< ;td>'.$this->icon[$child['level']].$child['name'].'';
  46. $this->ret.='< ;td>删除 添加 修改';
  47. $this->ret. ='
  48. ';
  49. $this->show($child['id']);
  50. }
  51. }
  52. }
  53. $items = array(
  54. array('id'=>1 , 'name'=>'湖北', 'pid'=>0, 'level'=>0),
  55. array('id'=>2 , 'name'=>'무汉', 'pid'=>1, 'level'=>1),
  56. array('id'=>3 , 'name'=>'孝感', 'pid'=>1, 'level'=>1),
  57. array('id'=>4 , 'name'=>'广东', 'pid'=>0, 'level'=>0),
  58. array('id'=>5 , 'name'=>'广州', 'pid'=>4, 'level '=>1),
  59. array('id'=>6 , 'name'=>'深圳', 'pid'=>4, 'level'=>1),
  60. array('id'=>7 , 'name'=>'东莞', 'pid'=>4, 'level'=>1),
  61. array('id'=>8 , 'name'=>'宜昌', 'pid'=>1, 'level'=>1),
  62. array('id'=>9 , 'name'=>'云梦' , 'pid'=>3, 'level'=>2),
  63. array('id'=>10 , 'name'=>'南山区', 'pid'=>6, 'level'=>2),
  64. array('id'=>11 , 'name'=>'宝안전', 'pid'=>6, 'level'=>2),
  65. array('id'=>12 , 'name'=>'倒店', 'pid'=>9, 'level'=>3),
  66. array('id'= >13 , 'name'=>'罗范大队', 'pid'=>12, 'level'=>4),
  67. array('id'=>14 , 'name'= >'下范存', 'pid'=>13, 'level'=>5),
  68. );
  69. $tree = new Lib_Tree($items);
  70. $ tree->show(0);
  71. echo $tree->ret;
  72. ?>
  73. 复代码
    类name 操작품


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.