亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

分享自定義的幾個PHP功能函數

2024-09-04 11:42:40
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了分享自定義的幾個PHP功能函數,本文羅列的都是WEB開發中常用的一些功能函數,例如提交過濾、字符串截取、IP地址匿名化、隱藏文件真實路徑等,需要的朋友可以參考下。

最近不是在折騰論壇嘛,各種類各種函數,原創一些,從別人那兒qiang過來一些,在此分享出來,希望有朋友能用的到~

注意:部分函數可能不夠完善,由此造成的漏洞風險自擔~

提交過濾

  1. function filter($text
  2.  //完全過濾注釋 
  3.  $text = preg_replace('/<!--?.*-->/'''$text); 
  4.  //完全過濾js 
  5.  $text = preg_replace('/<script?.*//script>/'''$text); 
  6.  //過濾危險的屬性,如:過濾on事件lang js 
  7.  while (preg_match('/(<[^><]+)( lang|action|background|codebase|dynsrc|lowsrc)[^><]+/i'$text$mat)) { 
  8.  $text = str_replace($mat[0], $mat[1], $text); 
  9.  } 
  10.  while (preg_match('/(<[^><]+)(window/.|javascript:|js:|about:|file:|document/.|vbs:|cookie)([^><]*)/i'$text$mat)) { 
  11.  $text = str_replace($mat[0], $mat[1] . $mat[3], $text); 
  12.  } 
  13.  //過濾多余html 
  14.  $text = preg_replace('/<//?(html|head|meta|link|base|basefont|body|bgsound|script|form|iframe|frame|frameset|applet|id|ilayer|layer|name|script|xml)[^><]*>/i'''$text); 
  15.  //反轉換 
  16.  $text = str_replace('[''<'$text); 
  17.  $text = str_replace(']''>'$text); 
  18.  $text = str_replace('|''"'$text); 
  19.  return $text

提交過濾2

  1. function stripslashes_array(&$array
  2.  while (list($key$var) = each($array)) { 
  3.  if ($key != 'argc' && $key != 'argv' && (strtoupper($key) != $key || '' . intval($key) == "$key")) { 
  4.  if (is_string($var)) { 
  5.  $array[$key] = stripslashes($var); 
  6.  } 
  7.  if (is_array($var)) { 
  8.  $array[$key] = stripslashes_array($var); 
  9.  } 
  10.  } 
  11.  } 
  12.  return $array

字符串截?。ㄟ@個是emlog里提出來的,其實也就是substr的增強版)

  1. function subString($strings$start$length
  2.  if (function_exists('mb_substr') && function_exists('mb_strlen')) { 
  3.  $sub_str = mb_substr($strings$start$length'utf8'); 
  4.  return mb_strlen($sub_str'utf8') < mb_strlen($strings'utf8') ? $sub_str . '...' : $sub_str
  5.  } 
  6.  $str = substr($strings$start$length); 
  7.  $char = 0; 
  8.  for ($i = 0; $i < strlen($str); $i++) { 
  9.  if (ord($str[$i]) >= 128) 
  10.  $char++; 
  11.  } 
  12.  $str2 = substr($strings$start$length + 1); 
  13.  $str3 = substr($strings$start$length + 2); 
  14.  if ($char % 3 == 1) { 
  15.  if ($length <= strlen($strings)) { 
  16.  $str3 = $str3 .= '...'
  17.  } 
  18.  return $str3
  19.  } 
  20.  if ($char % 3 == 2) { 
  21.  if ($length <= strlen($strings)) { 
  22.  $str2 = $str2 .= '...'
  23.  } 
  24.  return $str2
  25.  } 
  26.  if ($char % 3 == 0) { 
  27.  if ($length <= strlen($strings)) { 
  28.  $str = $str .= '...'
  29.  } 
  30.  return $str
  31.  } 

IP地址匿名化(最后一位替換為星號)

  1. function AnonymousIP()  
  2.  $ip = GetIP(); 
  3.  if ($ip == "Unknown") { 
  4.  $removed_ip = "未知用戶"
  5.  } 
  6.  if (strpos($ip":")) { 
  7.  $removed_ip = "IPv6用戶"
  8.  } else { 
  9.  $reg1 = '/((?:/d+/.){3})/d+/'
  10.  $reg2 = '~(/d+)/.(/d+)/.(/d+)/.(/d+)~'
  11.  $removed_ip = preg_replace($reg1"//1*"$ip); 
  12.  } 
  13.  return $removed_ip

獲取客戶端IP地址

  1. function GetIP() 
  2.  if (@$_SERVER["HTTP_X_FORWARDED_FOR"]) 
  3.  $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
  4.  else if (@$_SERVER["HTTP_CLIENT_IP"]) 
  5.  $ip = $_SERVER["HTTP_CLIENT_IP"]; 
  6.  else if (@$_SERVER["REMOTE_ADDR"]) 
  7.  $ip = $_SERVER["REMOTE_ADDR"]; 
  8.  else if (@getenv("HTTP_X_FORWARDED_FOR")) 
  9.  $ip = getenv("HTTP_X_FORWARDED_FOR"); 
  10.  else if (@getenv("HTTP_CLIENT_IP")) 
  11.  $ip = getenv("HTTP_CLIENT_IP"); 
  12.  else if (@getenv("REMOTE_ADDR")) 
  13.  $ip = getenv("REMOTE_ADDR"); 
  14.  else 
  15.  $ip = "Unknown"
  16.  return $ip

字符串加密(支持中文)

  1. function dencrypt($string$isEncrypt = true, $key = "youdian"
  2.  if (!isset($string{0}) || !isset($key{0})) { 
  3.  return false; 
  4.  } 
  5.    
  6.  $dynKey = $isEncrypt ? hash('sha1', microtime(true)) : substr($string, 0, 40); 
  7.  $fixedKey = hash('sha1'$key); 
  8.    
  9.  $dynKeyPart1 = substr($dynKey, 0, 20); 
  10.  $dynKeyPart2 = substr($dynKey, 20); 
  11.  $fixedKeyPart1 = substr($fixedKey, 0, 20); 
  12.  $fixedKeyPart2 = substr($fixedKey, 20); 
  13.  $key = hash('sha1'$dynKeyPart1 . $fixedKeyPart1 . $dynKeyPart2 . $fixedKeyPart2); 
  14.    
  15.  $string = $isEncrypt ? $fixedKeyPart1 . $string . $dynKeyPart2 : (isset($string{339}) ? gzuncompress(base64_decode(substr($string, 40))) : base64_decode(substr($string, 40))); 
  16.    
  17.  $n = 0; 
  18.  $result = ''
  19.  $len = strlen($string); 
  20.    
  21.  for ($n = 0; $n < $len$n++) { 
  22.  $result .= chr(ord($string{$n}) ^ ord($key{$n % 40})); 
  23.  } 
  24.  return $isEncrypt ? $dynKey . str_replace('='''base64_encode($n > 299 ? gzcompress($result) : $result)) : substr($result, 20, -20); 

檢查字符串是否包含中文

  1. function CheckChinese($string
  2.  if (preg_match("/[/x7f-/xff]/"$string)) { 
  3.  return true; 
  4.  } else { 
  5.  return false; 
  6.  } 

隱藏文件真實路徑

  1. function FileHeaderJump($file
  2.  header('Content-Description: File Transfer'); 
  3.  header('Content-Type: application/octet-stream'); 
  4.  header('Content-Disposition: attachment; filename=' . basename($file)); 
  5.  header('Content-Transfer-Encoding: binary'); 
  6.  header('Expires: 0'); 
  7.  header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
  8.  header('Pragma: public'); 
  9.  header('Content-Length: ' . filesize($file)); 
  10.  ob_clean(); 
  11.  flush(); 
  12.  readfile($file); 
  13.  exit

生成隨機字符串,自定義長度

  1. function CreateRandomString($length
  2.  $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  3.  $password = ""
  4.  for ($i = 0; $i < $length$i++) { 
  5.  $password .= $chars[mt_rand(0, strlen($chars) - 1)]; 
  6.  } 
  7.  return $password
  8. }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成aaa人片免费看| 欧美午夜精品伦理| 欧美专区在线观看| 97在线观看免费| 国产精品激情av电影在线观看| 日韩免费在线电影| 久久精品国产69国产精品亚洲| 伊人男人综合视频网| 国产精品久久久久久久久久免费| 日日摸夜夜添一区| 日韩欧美中文字幕在线观看| 中文字幕精品影院| 欧美性20hd另类| 国产成人精品在线| 最近2019中文字幕第三页视频| 久久免费高清视频| 亚洲精品久久久久久久久| 亚洲成人av中文字幕| 亚洲一区二区三区视频| 成人午夜小视频| 亚洲精品720p| 久久久久久久久久国产精品| 亚洲一区中文字幕在线观看| 国产suv精品一区二区| 亚洲最新av网址| 国产精品一二三视频| 国产成人在线播放| 日韩中文字幕在线看| 国产日韩精品入口| 国产精品美女视频网站| 97在线精品国自产拍中文| 国产成人黄色av| 欧美精品激情blacked18| 亚洲国产精品va在线| 日韩少妇与小伙激情| 亚洲国产精品视频在线观看| 欧美日韩性生活视频| 亚洲自拍偷拍视频| 国模精品一区二区三区色天香| 日韩精品亚洲精品| 91免费看片网站| 精品视频在线观看日韩| 成人在线中文字幕| 2019最新中文字幕| 欧美精品aaa| 亚洲欧美日韩区| 久久久国产精品x99av| 久久精品一偷一偷国产| 不卡在线观看电视剧完整版| 日韩高清免费观看| 亚洲国产精品专区久久| 日韩中文在线观看| 亚洲日韩中文字幕| 亚洲春色另类小说| 国产福利视频一区二区| 日韩欧美在线免费观看| 激情久久av一区av二区av三区| 91久久久久久久久| 黑人精品xxx一区一二区| 日韩精品视频免费| 精品激情国产视频| 亚洲成人aaa| 久久久久久国产精品久久| 伊人久久精品视频| 中文字幕不卡av| 国产精品在线看| 亚洲综合色av| 国产成人精品电影| 国产欧美一区二区三区久久人妖| 国产一区二区香蕉| 成人h片在线播放免费网站| 亚洲精品视频网上网址在线观看| 久久久久久噜噜噜久久久精品| 日韩精品视频在线观看网址| 久久精品欧美视频| 日韩欧美极品在线观看| 国产成人激情视频| 久热精品视频在线| 91精品国产综合久久香蕉最新版| 亚洲天堂影视av| 92国产精品久久久久首页| 懂色av中文一区二区三区天美| 2020国产精品视频| 国产精品大陆在线观看| 欧美日韩国产91| 国产精品国产亚洲伊人久久| 亚洲国语精品自产拍在线观看| 最近中文字幕mv在线一区二区三区四区| 亚洲白拍色综合图区| 中文字幕亚洲情99在线| 日韩中文字幕在线观看| 成人免费看黄网站| 国产精品福利在线观看| 高清欧美性猛交| 欧美性猛交xxxx富婆| 亚洲精品视频久久| 成人国产在线视频| 亚洲xxxx做受欧美| 亚洲天堂av女优| 琪琪亚洲精品午夜在线| 国产亚洲精品久久久| 久久久久久国产精品三级玉女聊斋| 欧美日韩亚洲一区二区三区| 成人国产亚洲精品a区天堂华泰| 欧美电影在线免费观看网站| 国产精品久久久久久亚洲影视| 欧美大片在线看免费观看| 在线视频免费一区二区| 日韩亚洲综合在线| 欧美影院在线播放| 伊人青青综合网站| 国产有码在线一区二区视频| 国产成人免费av电影| 亚洲免费视频网站| 久久久精品一区二区| 欧美激情精品在线| 性金发美女69hd大尺寸| 日韩精品中文字幕在线| 国产精品狼人色视频一区| 久久久亚洲影院| 九九精品在线播放| 欧美人成在线视频| 亚洲精品第一页| 国产欧美日韩最新| 日韩精品免费在线视频| 国产视频精品自拍| 欧日韩不卡在线视频| 91国产在线精品| 九色成人免费视频| 国产综合在线视频| 国产日韩换脸av一区在线观看| 精品久久香蕉国产线看观看亚洲| 97超碰国产精品女人人人爽| 日本精品久久久| 久色乳综合思思在线视频| 亚洲人成网站免费播放| 欧美又大又硬又粗bbbbb| 久久天天躁狠狠躁夜夜躁2014| 日本久久久久久久| 久久精品美女视频网站| 欧美一级黑人aaaaaaa做受| 久久视频在线直播| 日韩一区二区精品视频| 国产99久久精品一区二区 夜夜躁日日躁| 91精品国产综合久久香蕉的用户体验| 精品亚洲一区二区三区在线观看| 亚洲第一区第一页| 久久不射电影网| 裸体女人亚洲精品一区| 欧美日韩精品二区| 91沈先生作品| 欧美日本在线视频中文字字幕| 欧美精品电影免费在线观看| 人妖精品videosex性欧美| 国产偷国产偷亚洲清高网站| 91理论片午午论夜理片久久| 久久久久久18| 亚洲已满18点击进入在线看片| 亚洲精品www久久久久久广东| 国产精品海角社区在线观看| 欧美一区二区大胆人体摄影专业网站| 亚洲国产97在线精品一区| 91精品国产高清自在线| 国产精品久久久久一区二区|