實(shí)用函數(shù)

批量更新
public function updateBatch($tableName = "", $multipleData = array()){
    if( $tableName && !empty($multipleData) ) {
        // column or fields to update
        $updateColumn = array_keys($multipleData[0]);
        $referenceColumn = $updateColumn[0]; //e.g id
        unset($updateColumn[0]);
        $whereIn = "";

        $q = "UPDATE ".$tableName." SET ";
        foreach ( $updateColumn as $uColumn ) {
            $q .=  $uColumn." = CASE ";

            foreach( $multipleData as $data ) {
                $q .= "WHEN ".$referenceColumn." = \"".$data[$referenceColumn]."\" THEN '".$data[$uColumn]."' ";
            }
            $q .= "ELSE ".$uColumn." END, ";
        }
        foreach( $multipleData as $data ) {
            $whereIn .= "'".$data[$referenceColumn]."', ";  
        }  

        $q = rtrim($q, ", ")." WHERE ".$referenceColumn." IN (".  rtrim($whereIn, ', ').")"; 

        // Update    
        $result = DB::update(DB::raw($q));
        $data = [
            'status' => 200,
            'message' => '成功更新'.$result.'條',
        ] ;
        return $data;
    } else { 
        $data = [
            'status' => 400,
            'message' => '更新失敗',
        ] ;
        return $data;
    }
}  
去掉二維數(shù)組里重復(fù)項(xiàng)
function array_unique_bykey($arr, $key){  
       $tmp_arr = array();  
        foreach($arr as $k => $v)  
        {  
            if(in_array($v[$key], $tmp_arr))  
            {  
                unset($arr[$k]); 
            }  
            else {  
                $tmp_arr[$k] = $v[$key]; 
            }  
       }  
       return $arr;  
}
讀取csv
這個(gè)讀取完,會(huì)自動(dòng)做成key - value的數(shù)據(jù),就不用每次用[0], [1]來(lái)訪問(wèn)字段了。
function readCsv($filename){
    ini_set("auto_detect_line_endings", true);
    $rows = [];
    if ($csvFileHandler = fopen($filename, 'r')) {
        $columns = fgetcsv($csvFileHandler, 0, ",");
        while (($rowData = fgetcsv($csvFileHandler, 0, ",")) !== false) {
            foreach ($columns as $columnIndex => $columnName) {
                if(empty($columnName)) continue;
                $row[$columnName] = $rowData[$columnIndex];
            }
            $rows[] = $row;
        }
    }
    return $rows;
}
導(dǎo)出csv
 function outputCsv($data, $filename, $emptyString = 'No Data'){
    if($data==false || count($data)==0){
        echo $emptyString;
        exit;
    }

    header('Content-Type: text/csv; charset=UTF-8');
    header("Content-Disposition: attachment; filename={$filename}.csv");
    header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
    header('Expires:0');
    header('Pragma:public');

    ob_start();
    $fp = fopen( 'php://output', 'w' ) or die();

    fputcsv($fp, array_keys(reset($data)));
    foreach ($data as $dataRow){
        fputcsv($fp, array_values($dataRow));
    }

    @fclose($fp);
    $output = ob_get_contents();
    ob_end_clean();
    echo "\xEF\xBB\xBF" . $output;
    exit;
}
public function myCurl($url, $header = null, $proxy = null, $method = "GET", $options = array()){
    $curl = curl_init();
    //基礎(chǔ)參數(shù)
    $defaultOptions = array(
      CURLOPT_URL => $url,
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_SSL_VERIFYPEER => FALSE,
      CURLOPT_SSL_VERIFYHOST => FALSE,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => $method,
    );

    //額外指定參數(shù)
    $options = $defaultOptions + $options;

    //設(shè)置代理
    if(!empty($proxy)){
      $options[CURLOPT_PROXY] = $proxy['proxy'];
      $options[CURLOPT_PROXYPORT] = $proxy['port'];
      //$options[CURLOPT_PROXYTYPE] = $proxy['type'];
    }

    //CURLOPT_HTTPHEADER
    if(!empty($header)){
      $options[CURLOPT_HTTPHEADER] = $header;
    }
    curl_setopt_array($curl, $options);

    $response = curl_exec($curl);
    //$info = curl_getinfo($curl);
    $err = curl_error($curl);

    curl_close($curl);

    if ($err) {
      return "cURL Error #:" . $err;
    } else {
      return $response;
    }
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容