この記事では主に、PHP での重複排除方法とファイルのダウンロードの詳細な説明を共有します。PHP でのファイルのインポートプロセス中に、重複イベントが頻繁に発生するため、重複排除してからダウンロードする必要があります。
1. 考えたこと
まず主キーを格納する配列と空の配列を設定します。ファイルを解析し、渡される配列内の主キー配列が存在するかどうかを確認します。添付ファイルのアップロード ディレクトリを設定します。アップロードする。
2. 方法
データベース自体にデータがある場合、インポートされたデータを複製するのは簡単なので、まず主キーを主キー配列に入れ、次に新しい 1 次元配列を作成して、 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(); } }
関連する推奨事項:
以上がPHPでの重複排除方法の詳細説明とファイルダウンロードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。