> 백엔드 개발 > PHP 튜토리얼 > 몇 가지 실용적인 PHP 사용자 정의 함수 요약

몇 가지 실용적인 PHP 사용자 정의 함수 요약

伊谢尔伦
풀어 주다: 2023-03-11 13:06:01
원래의
1413명이 탐색했습니다.

이 글은 주로 PHP의 몇 가지 실용적인 커스텀 함수를 소개하고, PHP 네트워크 연산, 문자열 연산, 시간 연산, 정규 표현식사용 기술을 예제와 함께 요약 분석합니다. 도움이 필요한 친구들은 참고할 수 있습니다

최근 코드를 통해 다음과 같은 몇 가지 실용적인 기능이 있음을 발견했습니다.

1. 클라이언트 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;
}
로그인 후 복사

여기서 다단계 프록시를 사용하면 실제 IP를 얻을 수 없습니다.

2. 문자열 차단, 중국어 지원

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. 포럼 및 블로그에서 일반적으로 사용되는 시간 기능

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. 필터링하려는 경우 all Strip_tags 태그이면 충분합니다.

위 내용은 몇 가지 실용적인 PHP 사용자 정의 함수 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿