雜記整理三:php、thinkphhp和sql
阿新 • • 發佈:2017-07-09
遍歷 == 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