课程咨询 :0571-56020837 QQ: 1445681584

杭州php培训

  • 达内:PHP实用自定义函数

    发布:杭州PHP培训      来源:PHPERZ      时间:2016-02-04


  •     杭州达内PHP培训专家介绍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('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、过滤部分标签


    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)


        如果要过滤所有标签strip_tags就够用了。



上一篇:程序员吐槽的10个编程语言

下一篇:达内: PHP 7 正式版现已发布

新开班日期  |  更多

PHP高级开发工程师就业班

PHP高级开发工程师就业班

开班日期:每月28日

PHP高级开发工程师精品班

PHP高级开发工程师精品班

开班日期:每月28日

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:每月28日

PHP高级开发工程师定制班

PHP高级开发工程师定制班

开班日期:每月28日

  • 地址:杭州市西湖区文三路259号昌地火炬大厦1号楼14层
  • 课程培训电话:0571-56020837 QQ: 1445681584     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56