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);
    }
  • 相关阅读:
    门维修问题
    程序存储问题
    旅行(Dijkstra)问题
    《FDTD electromagnetic field using MATLAB》读书笔记之 Figure 1.14
    《FDTD electromagnetic field using MATLAB》读书笔记 Figure 1.2
    《FDTD electromagnetic field using MATLAB 》读书笔记001-差商种类
    第2本MATLAB书
    《DSP using MATLAB》示例 Example 10.2
    《DSP using MATLAB》示例 Example 10.1
    《DSP using MATLAB》 示例 Example 9.16
  • 原文地址:https://www.cnblogs.com/goldenstones/p/4126224.html
Copyright © 2011-2022 走看看