Cet article présente principalement plusieurs fonctions personnalisées de PHP, et résume et analyse les opérations réseau PHP, les opérations sur les chaînes, les opérations temporelles et l'utilisation des expressions régulières avec des exemples. , les amis qui en ont besoin peuvent s'y référer
J'ai regardé le code récemment et j'ai découvert que voici quelques fonctions pratiques.
1. Obtenez l'adresse IP du client
function getOnlineIp() { $strOnlineIp = ""; if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { $onlineip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { $onlineip = getenv('REMOTE_ADDR'); } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { $onlineip = $_SERVER['REMOTE_ADDR']; } preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches); $strOnlineIp = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown'; return $strOnlineIp; }
Ici, si vous utilisez un proxy à plusieurs niveaux, la véritable adresse IP ne peut pas être obtenue.
2. Interception de chaînes, supporte le chinois
function getStrTruncate($string, $length = 80, $etc = ''){ if ($length == 0) return ''; mb_internal_encoding("UTF-8"); $string = str_replace("\n","",$string); $strlen = mb_strwidth($string); if ($strlen > $length) { $etclen = mb_strwidth($etc); $length = $length - $etclen; $str=''; $n = 0; for($i=0; $i<$length; $i++) { $c = mb_substr($string, $i, 1); $n += mb_strwidth($c); if ($n>$length) { break; } $str .= $c; } return $str.$etc; } else { return $string; } } echo getStrTruncate("博客",7); //utf8一个汉字对应二个字符
3. Depuis combien de temps la fonction, le forum et les blogs sont-ils couramment utilisés?
function timeFromNow($dateline) { if(emptyempty($dateline)) return false; $seconds = time() - $dateline; if ($seconds < 60){ return "1分钟前"; }elseif($seconds < 3600){ return floor($seconds/60)."分钟前"; }elseif($seconds < 24*3600){ return floor($seconds/3600)."小时前"; }elseif($seconds < 48*3600){ return date("昨天 H:i", $dateline).""; }else{ return date('Y-m-d', $dateline); } } echo timeFromNow(strtotime("2012-07-07 14:15:13")); //昨天 14:15 echo timeFromNow(strtotime("2012-07-08 14:15:13")); //1小前
4. Filtrez certaines balises
function delTags($str) { $farr = array( "/<(\/?)(script|i?frame|style|html|body|title|link|meta|form|input|embed|object|textarea|\?|\%)([^>]*?)>/isU", "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU" ); $tarr = array( "", "" ); $str = preg_replace( $farr,$tarr,$str); return $str; } $str = "<a href='#'>asdfasdfsd</a>====<script>alert(1111)</script>"; echo delTags($str); //结果:<a href='#'>asdfasdfsd</a>====alert(1111) echo strip_tags($str); //结果:sdfasdfsd====alert(1111)
Si vous souhaitez filtrer toutes les balises, strip_tags suffit.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!