Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung von 4 praktischen benutzerdefinierten PHP-Funktionen

Zusammenfassung von 4 praktischen benutzerdefinierten PHP-Funktionen

伊谢尔伦
伊谢尔伦Original
2017-06-26 13:39:171318Durchsuche

In diesem Artikel werden hauptsächlich einige praktische benutzerdefinierte Funktionen von PHP vorgestellt und PHP-Netzwerkoperationen, String-Operationen, Zeitoperationen und die Verwendung von regulären Ausdrücken mit Beispielen zusammengefasst und analysiert. Freunde in Not können sich auf

1 beziehen. Holen Sie sich die Client-IP

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;
}

Hier kann die echte IP nicht abgerufen werden, wenn Sie einen Multi-Level-Proxy verwenden Angekommen.

2. String Interception, Unterstützung für Chinesisch

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. Wie lange ist es her, dass Funktion, Forum und Blogs häufig verwendet werden?

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(&#39;Y-m-d&#39;, $dateline);
  }
}
echo timeFromNow(strtotime("2012-07-07 14:15:13")); //昨天 14:15
echo timeFromNow(strtotime("2012-07-08 14:15:13")); //1小前

4. Filtern Sie einige Tags

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=&#39;#&#39;>asdfasdfsd</a>====<script>alert(1111)</script>";
echo delTags($str);  //结果:<a href=&#39;#&#39;>asdfasdfsd</a>====alert(1111)
echo strip_tags($str); //结果:sdfasdfsd====alert(1111)

Wenn Sie alle Tags filtern möchten, reicht „strip_tags“ aus.

Das obige ist der detaillierte Inhalt vonZusammenfassung von 4 praktischen benutzerdefinierten PHP-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn