• php 零点累积


     

    获取url中请求参数

    function getQueryParams($url) {
        $data = parse_url($url);
    
        $params = array();
        $queryArr = explode('&', $data['query']);
        $queryArr = array_filter($queryArr);
        foreach ($queryArr as $value) {
            list($key, $val) = explode('=', $value);
            $params[$key] = $val;
        }
        return $params;
    }

    php判断是否含中文

    1.正则表达式大全

    x80-xff 英文字符

    if (preg_match("/[x7f-xff]/", $string)) {//兼容gb2312,utf-8
    echo "有中文";
    }else{
    echo "没有中文";
    }

    2.字符串长度

    $mb= mb_strlen($str,'utf-8');

        $st = strlen($str);
        if($st==$mb)
            return '纯英文';
        if($st%$mb==0 && $st%3==0)
            return '纯汉字';
        return '汉英混合';
    function cutstr($string, $length, $dot = ' ...') {
        if(strlen($string) <= $length) {
            return $string;
        }
    
        $pre = chr(1);
        $end = chr(1);
        $string = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array($pre.'&'.$end, $pre.'"'.$end, $pre.'<'.$end, $pre.'>'.$end), $string);
    
        $strcut = '';
        if(strtolower(CHARSET) == 'utf-8') {
    
            $n = $tn = $noc = 0;
            while($n < strlen($string)) {
    
                $t = ord($string[$n]);
                if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
                    $tn = 1; $n++; $noc++;
                } elseif(194 <= $t && $t <= 223) {
                    $tn = 2; $n += 2; $noc += 2;
                } elseif(224 <= $t && $t <= 239) {
                    $tn = 3; $n += 3; $noc += 2;
                } elseif(240 <= $t && $t <= 247) {
                    $tn = 4; $n += 4; $noc += 2;
                } elseif(248 <= $t && $t <= 251) {
                    $tn = 5; $n += 5; $noc += 2;
                } elseif($t == 252 || $t == 253) {
                    $tn = 6; $n += 6; $noc += 2;
                } else {
                    $n++;
                }
    
                if($noc >= $length) {
                    break;
                }
    
            }
            if($noc > $length) {
                $n -= $tn;
            }
    
            $strcut = substr($string, 0, $n);
    
        } else {
            $_length = $length - 1;
            for($i = 0; $i < $length; $i++) {
                if(ord($string[$i]) <= 127) {
                    $strcut .= $string[$i];
                } else if($i < $_length) {
                    $strcut .= $string[$i].$string[++$i];
                }
            }
        }
    
        $strcut = str_replace(array($pre.'&'.$end, $pre.'"'.$end, $pre.'<'.$end, $pre.'>'.$end), array('&amp;', '&quot;', '&lt;', '&gt;'), $strcut);
    
        $pos = strrpos($strcut, chr(1));
        if($pos !== false) {
            $strcut = substr($strcut,0,$pos);
        }
        return $strcut.$dot;
    }
    View Code

    中文字符转换为十六进制ascii码存储

    不同编码请在不同编码环境下测试获取

    $str = ':';
    $len = strlen($str);
    $asci = array();
    for($i=0; $i<$len; $i++) {   
       $asci[] = '0x'. dechex(ord($str{$i})); 
    }
    $res = '';
    foreach($asci as $val){
        $res = $res ? $res. '.chr('. $val .')' : 'chr('. $val .')';
    }
    echo $res;
    echo "
    ";
    echo chr(0xef).chr(0xbc).chr(0x9a);

     array_map  在一个PHP类中通过array_map函数回调内部方法又该如何做呢?

    array array_map ( callback callback, array arr1 [, array ...] )

    array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

    静态方法

    $return array_map(array(__CLASS__'_entities'), $arg);

    非静态方法

    $return array_map(array($this'entities'), $arg);

    1,在PHP类中通过array_map函数回调内部方法时,类名称可以使用__CLASS__常量。我们强烈推荐使用此常量,因为不论你类如何修改,这能保证最终结果都是正确的。
    2,如果回调的方法是非静态类型,亦可通过$this伪变量指定。
    3,在PHP类中的array_map函数总是不能识别self伪变量。

    使用多个参数:

    <?php
    function myfunction($v1,$v2) 
    {
    if ($v1===$v2)
        {
        return "same";
        }
    return "different";
    }
    $a1=array("Horse","Dog","Cat");
    $a2=array("Cow","Dog","Rat");
    print_r(array_map("myfunction",$a1,$a2));
    ?>

    Extract新用法 - SQL语句

    extract(DB::fetch_first("SELECT COUNT(*) AS threadcount, SUM(t.replies)+COUNT(*) AS replycount
    FROM ".DB::table('forum_thread')." t, ".DB::table('forum_forum')." f
    WHERE f.fid='$fid' AND t.fid=f.fid AND t.displayorder>='0'"));

    extract导出变量,可以直接使用 $threadcount, $replycount

    生成xml文档,<![CDATA[ content ]]> content 有效,安全过滤,可以正常解析的xml文档

    public function XmlSafeStr($str, $cdata = true) {
            if (!is_string($str)) return $str;
            if ($cdata) {
                $str = str_replace(']]>', '', $str);
            }
            /* invalid chars
             * 0x00 - 0x08
            * 0x0b - 0x0c
            * 0x0e - 0x1f
            */
            $str = preg_replace('/[x00-x08x0b-x0cx0e-x1f]/', '', $str);
            return $str;
        }

     百分比统计

    $total = 2018673;
            
            $times = array(
                1 => 1217169,
                2 => 11529,
                3 => 3279,
                4 => 2279,
                5 => 743,
                6 => 314,
                7 => 58,
                8 => 31, 
                9 => 6,
                10 => 2,
                11 => 0,
            );
            $tmpArr = array();
            foreach($times as $num => $time) {
                echo 'L' . ($num-1) . "			" . number_format(floor(($time * 10000000) /$total) * 0.00001, 5, '.', '') . '%';
                echo PHP_EOL;
                $tmpArr[] = floor(($time * 1000) /$total) * 0.1;
            }
            echo array_sum($tmpArr);
    
    
  • 相关阅读:
    Python开发入门与实战3-Django动态页面
    Python开发入门与实战2-第一个Django项目
    Python开发入门与实战1-开发环境
    牛客网剑指offer第12题——数值的整数次方
    再叙快速排序
    牛客网剑指offer第29题——最小的k个数
    牛客网剑指offer第59题——按之字形顺序打印二叉树
    牛客网剑指offer第33题——第N个丑数
    各种特征距离的计算方法及应用
    牛客网剑指offer第24题——二叉树中和为某一值的路径
  • 原文地址:https://www.cnblogs.com/bandbandme/p/3144041.html
Copyright © 2020-2023  润新知