1. 程式人生 > >雜記整理三:php、thinkphhp和sql

雜記整理三:php、thinkphhp和sql

遍歷 == param lod think ews quest html listdir

php 循環,v為鍵,c為值

$list = array( "aaa"=>"ttt", "bbb"=>"sss" );

foreach($list as $v => $c){
    echo $v;
    echo $c;
};

生成定長的62進制隨機碼(0-9, a-z, A-Z)

function getRandom($param){
    $str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $key = "";

    for($i=0;$i<$param
;$i++) { $key .= $str{mt_rand(0,32)}; //生成php隨機數 } return $key; }

sql 遞歸查詢

 SELECT SORT_ID AS ID,SORT_PARENT AS 父ID ,levels AS 父到子之間級數, paths AS 父到子路徑 FROM (
     SELECT SORT_ID,SORT_PARENT,
     @le:= IF (SORT_PARENT = 0 ,0,
         IF( LOCATE( CONCAT(|,SORT_PARENT,:),@pathlevel
) > 0 , SUBSTRING_INDEX( SUBSTRING_INDEX(@pathlevel,CONCAT(|,SORT_PARENT,:),-1),|,1) +1 ,@le+1) ) levels , @pathlevel:= CONCAT(@pathlevel,|,SORT_ID,:, @le ,|) pathlevel , @pathnodes:= IF( SORT_PARENT =0,,0, CONCAT_WS(,, IF
( LOCATE( CONCAT(|,SORT_PARENT,:),@pathall) > 0 , SUBSTRING_INDEX( SUBSTRING_INDEX(@pathall,CONCAT(|,SORT_PARENT,:),-1),|,1) ,@pathnodes ) ,SORT_PARENT ) )paths ,@pathall:=CONCAT(@pathall,|,SORT_ID,:, @pathnodes ,|) pathall FROM flow_sort, (SELECT @le:=0,@pathlevel:=‘‘, @pathall:=‘‘,@pathnodes:=‘‘) vv ORDER BY SORT_PARENT,SORT_ID ) src ORDER BY SORT_ID

php 二維數組去掉重復值,保留鍵值,恢復行索引,自動修改列索引,如果只有小於2行(沒有排序的必要),則直接返回原數組。

protected function array_unique_fb($array2D){

    if(count($array2D)>1){
        $keyarr = [];
        foreach($array2D[0] as $k => $v){
            $keyarr[] = $k;
        }
foreach ($array2D as $k=>$v){
            $v=join(‘,‘,$v);  //降維,也可以用implode,將一維數組轉換為用逗號連接的字符串
            $temp[$k]=$v;
        }
        $temp=array_unique($temp); //去掉重復的字符串,也就是重復的一維數組
        foreach ($temp as $k => $v){
            $array=explode(‘,‘,$v); //再將拆開的數組重新組裝
            //(下面的索引根據自己的情況進行修改即可)
            //自動回復索引

            foreach($keyarr as $sk => $sv){
                $temp2[$k][$sv] =$array[$sk];
            }
        }

        $temp2 = array_values($temp2);

    }else{
        $temp2 = $array2D;
    }

return $temp2;
}

對頁面進行緩存

function pageCache($siteId,$page = ‘‘,$expire = 7200){
    $siteId = $siteId?:1;
    $fileName = $siteId.‘.html‘;
    $filePath = CACHE_PATH.$fileName;

    if($page){
        file_put_contents($filePath,$page);
    }else{
        if(file_exists($filePath)){
            $editTime =  fileatime($filePath);
            $page = ‘‘;
            if((time() - $editTime) <= $expire){
                $page =  file_get_contents($filePath);
            }
        }
    }
    if($page){
        echo $page;
        exit;
    }
}

數組輸出json,註意如果有跨域操作(如有api站點)需要加跨域的HTTP頭

$arr = [
    ‘haha‘  => 15,
    ‘tata‘  => ‘shiningsun‘,
    ‘lala‘  => [15,16],
];

header("Access-Control-Allow-Origin:*");

$result = json_encode($arr);

php 遍歷文件名

/***********************
用readdir()函數
 ************************/
function listDir($dir)
{
    if(is_dir($dir))
    {
        if ($dh = opendir($dir))
        {
            $arr = array();
            while (($file = readdir($dh)) !== false)
            {
                if((is_dir($dir."/".$file)) && $file!="." && $file!="..")
                {
                    $arr[$file] = listDir($dir."/".$file."/");
                }
                else
                {
                    if($file!="." && $file!="..")
                    {
                            $arr[$file] = get_extension($file);
                    }

                }
            }
            closedir($dh);

            return $arr;
        }
    }
}

/***********************
獲取文件擴展名
 ************************/
function get_extension($file)
{
    return pathinfo($file, PATHINFO_EXTENSION);
}

從url中讀取頁面信息

$url=‘http://school.51cce.dev/klzhhdx/news/‘;
$use_include_path = false;
$context = null;
$offset = -1;
$contents = file_get_contents($url, $use_include_path, $context, $offset);

dump($contents);

thinkphp 5.0 寫法總結: 接收參數
Request::instance()->post(‘qq‘) && $data[‘QQ‘]                    = Request::instance()->post(‘qq‘);
Request::instance()->post(‘email‘) && $data[‘Email‘]              = Request::instance()->post(‘email‘);
Request::instance()->post(‘mobile‘) && $data[‘ContactsTel‘]       = Request::instance()->post(‘mobile‘);

判斷是否有post值(get同理)

if(Request::instance()->isPost())

雜記整理三:php、thinkphhp和sql