PHP中的去重方法詳解和檔案下載

來源:互聯網
上載者:User
本文主要和大家分享PHP中的去重方法詳解和檔案下載,在php中檔案匯入處理程序中,經常會遇到重複事件,那麼就需要我們去重,然後進行下載。

1.思想

先設定一個儲存主鍵數組,和一個空數組。解析檔案,然後看要傳入的數組中主鍵數組中是否存在,進行檢測。設定附件上傳目錄。進行上傳。

2.方法

如若資料庫中本身就存在資料,很容易匯入的資料重複,所以首先把主鍵放入一個主鍵數組中,再建立一個新一維數組,然後解析csv,如果解析出來的話,就應該把上面已經定義好的作為鍵名的數組和解析後的csv進行合并(array_combine)。產生一個新數組。那麼,就應該判斷要匯入的資料中的主鍵和資料庫本身的是否重複(in_array),如若重複,則顯示這個學號已重複。如若沒有,則把這個學號儲存到主鍵數組中,並把這個資料內容儲存到原本已定義的數組中。

3.代碼

if($fp){            $fields=array('no','name','sex');            $model=M('student');            $arrno=$model->getField('no',true);            $arr=array();            while(($row=fgetcsv($fp,1000,","))!==false){            $row=array_combine($fields, $row);                if(in_array($row['no'],$arrno)){                  echo $row['no']."學號已經存在"."<br>";                }else{                       $arrno[]=$row['no'];                    $arr[]=$row;                    // dump($arr);                    // exit;                    echo $row['no']."學號已經匯入"."<br>";                }                if(count($arr)==1000){                    $model->addAll($arr);                    unset($arr);                }            }            dump($arr);            if(count($arr)>0){                $model->addAll($arr);            }            $this->show('匯入成功');            // $this->download();        }

下載

public function download(){       $file_name=$file;       $file_dir="/Public/Download/";       if(!file_exists($file_dir . $file_name)){       echo "檔案找不到";       exit();       }else{       $file=fopen($file_dir, $file_name,"r");       Header("Content-type:application/octet-stream");       Header("Accept-Ranges:bytes");       Header("Accept-Length:".filesize($file_dir.$file_name));       Header("Content-Disposition:attachment;filename".$file_name);       echo fread($file,filesize($file_dir.$file_name));       fclose($file);       exit();       }    }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.