zoukankan      html  css  js  c++  java
  • php随笔

    if (!function_exists('apache_ request _ headers ')) { 
            function apache_request_headers() { 
                foreach($_SERVER as $key=>$value) { 
                    if (substr($key,0,5)=="HTTP_") { 
                        $key=str_replace(" ","-",ucwords(strtolower(str_replace("_"," ",substr($key,5))))); 
                        $out[$key]=$value; 
                    }else{
                        $out[$key]=$value; 
            }
                } 
                return $out; 
            } 
    }

    time to string

    function nummixed($mixedStr, $rawStr, $type=0){
            $book = function ($mixedStr, $type=0){
                $arr = str_split($mixedStr);
                $arr = array_values(array_unique($arr));
                if(($num = 10-count($arr))>0){
                    $salt = ['f','2','d','j','c','7','z','t','k','g'];
                    $salt = array_slice(array_diff($salt, $arr), 0, $num);
                    $arr = array_merge($arr, $salt);
                }
                return $type==0 ? $arr : array_flip($arr);
            };
            $map = function(array $book, $rawStr){
                $arr = str_split(strval($rawStr));
                array_walk($arr, function(&$val, $key, $book){
                    $val = $book[$val];
                }, $book);
                return implode('', $arr);
            };
            return $map($book($mixedStr, $type), $rawStr);
        }
    function magtime($inputs,$to = '2str'){
        if($to=='2str'&&!(is_numeric($inputs))&&!($to=='2num'&&preg_match("/^[a-z]{2,10}$/",$inputs))) return false;
        $skeys = $akeys = array('f','a','d','e','c','y','z','t','k','g');
        sort($skeys);
        $inputs = str_split($inputs);
        if($to=='2str'){
            $ft_key = array_rand($akeys);
            $keys = $ft_key%2==0 ? $skeys : $akeys;
            $rs = '';
            foreach($inputs as $input){
                $rs .= $keys[$input];
            }
            $rs .= $akeys[$ft_key];
        }elseif($to=='2num'){
            $footer = array_pop($inputs);
            $ft_key = array_search($footer,$akeys);
            if($ft_key===false) return false;
            $keys = $ft_key%2==0 ? $skeys : $akeys;
            $keys = array_flip($keys);
            $rs = '';
            foreach($inputs as $input){
                $rs .= $keys[$input];
            }
        }
        return $rs;
    }
    
    $time = '1416896158';
    echo $time;
    echo "<br>";
    $str = magtime($time);
    echo $str;
    echo "<br>";
    $num = magtime($str,'2num');
    echo $num;
    echo "<br>";
    /**
     * 多条更新
     * @param string $table_name
     * @param array $val_cases
     * @param array $fields
     * @param string $pri_key
     * @return UPDATE
     */
    function update_more($table_name,array $val_cases,array $fields,$pri_key = 'id'){
        $arr = update_lots_combine($val_cases,$fields,$pri_key);
        return update_lots($table_name,$arr['values'],$arr['cases'],$pri_key);
    }
    /**
     * 多条更新
     * @param string $table_name
     * @param array $values array('name'=>array('kate','jim'++),'age'=>array('16','18'++))
     * @param array $cases array(array('id'=>'1','rank'=>'2'),array('id'=>'4','rank'=>'3')++);
     * @param $pri_key
     * @return UPDATE user SET `name`= CASE WHEN id='1' AND rank='2' THEN 'kate' WHEN id='4' AND rank='3' 
     *THEN 'jim' ELSE `name` END, `age`= CASE  WHEN id='1' AND rank='2' THEN '16' WHEN id='4' AND rank='3'
     *THEN '18' ELSE `age` END  WHERE `id` IN (1,4,5)
     */
    function update_lots($table_name,$values,$cases,$pri_key = 'id'){
        if(!is_array($values) || !is_array($cases) || !count($values)) return false;
        foreach($cases as $case_key => $case_fields){
            foreach($case_fields as $case_field => $case_value){
                !isset($pri_key) && $pri_key = $case_field;//for where ids
                !isset($ids[$case_key]) && $ids[$case_key] = $case_value;//for where ids
                $case_sql_piece[]=$case_field."='".$case_value."'";
            }
            $case_sql[] = implode(' AND ',$case_sql_piece);
            unset($case_sql_piece);
        }
        !empty($ids)&&$where = " WHERE `$pri_key` IN (".implode(',',$ids).") ";
        
        $sql = "UPDATE ".$table_name.' SET ';
        $csql = '';
        foreach($values as $field=>$fieldvalues){
            $csql .= "`".$field."`"."= CASE ";
            foreach($values[$field] as $key=>$fieldvalue){
                !isset($case_sql[$key]) && $case_sql[$key] = $case_sql[0];
                $csql .= " WHEN {$case_sql[$key]} THEN '{$fieldvalue}'"; 
            }
            $csql .= " ELSE `{$field}`  END,";
        }
        $sql .= rtrim($csql,',');
        isset($where) && $sql .= $where;
        return $sql;
    }
    /**
     * 多条更新参数设置
     * @param array $val_cases array(array('value'=>array('kate',16),'where'=>array($pri_key=>'1','rank'=>'2')), 
     *     array('value'=>array('jim',18),'where'=>array($pri_key=>'4','rank'=>'3')))
     * @param array $fields array('name','age')
     * @param string $pri_key id
     * @return boolean|unknown[]
     */
    function update_lots_combine(array $val_cases,array $fields,$pri_key = 'id'){
        if(!is_array($val_cases) || !is_array($fields)) return false;
        foreach($val_cases as $row){
            foreach($fields as $k=>$field){
                if(!isset($row['value'][$k])){exit('批量更新参数不匹配!');}
                $values[$field][] = $row['value'][$k];
            }
            $cases[] = $row['where'];
        }
        return array('values'=>$values,'cases'=>$cases);
    }
  • 相关阅读:
    HDU 2844 Coins(多重背包)
    HDU 4540 威威猫系列故事——打地鼠(DP)
    Codeforces Round #236 (Div. 2)
    FZU 2140 Forever 0.5
    HDU 1171 Big Event in HDU(DP)
    HDU 1160 FatMouse's Speed(DP)
    ZOJ 3490 String Successor
    ZOJ 3609 Modular Inverse
    ZOJ 3603 Draw Something Cheat
    ZOJ 3705 Applications
  • 原文地址:https://www.cnblogs.com/goldenstones/p/4126224.html
Copyright © 2011-2022 走看看